从ini文件中读取值作为列表随机选取

时间:2016-04-26 19:14:00

标签: python list dictionary ini

我在将ini文件中的某些值作为列表读取时遇到问题。我制作了一个程序,它将两个列表作为参数(源,目标),然后将源路径复制到目标路径。它从名为paths.ini的ini文件中获取这些路径。但是,我注意到这些值没有按时间顺序添加,这意味着ini文件中的第一个值不一定是列表中的第一个值。这是一个严重的错误,因为我希望第一个源只能复制到第一个目的地。

以下是我所做的示例代码:

try:
    src = list(dict(config.items('src')).values())
    dst = list(dict(config.items('dst')).values())
    print("src: "+ str(src) + " dst: "+ str(dst))


except Exception as e:
    messagebox.showerror("Data mismatch", "Mismatch between data from ini and core file")
    sys.exit(0)

if(utilFunctions.copyto(src, dst, True)):
    successCopy()
else:
    errorCopy()

对于那些想要查看ini文件的人:

[src]
src1 = C:/Users/saUser/Documents/copyExample/singleCopies/1/2/3.txt
src2 = C:/Users/saUser/Documents/copyExample/singleCopies/1/2/3.txt


[dst]
dst1 = C:/Users/saUser/Documents/copyExample/singleCopies/1
dst2 = C:/Users/saUser/Documents/copyExample/singleCopies/1

1 个答案:

答案 0 :(得分:2)

我猜您使用的是内置ConfigParser。根据文档,这是使用collections.OrderedDict来存储文件中的值,所以当按顺序进行读取时,它应该没问题,并且最终得到一个有序字典,表示来自{{{{{ 1}}从上到下。

如果你想要一个列表,那就不要那样做[section]你正在做的事情。更好地使用列表理解:

list(dict(...

然后,您将在src = [value for key, value in config.items('src')] dst = [value for key, value in config.items('dst')] src中获得您想要的内容。