从 ini 文件中读取值作为列表是随机选择的
Reading values as a list from ini file are picked at random
我在从 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
我猜你正在使用内置 ConfigParser
。根据文档,这是使用 collections.OrderedDict
将值存储在您的文件中,因此虽然读取是按顺序进行的,但应该没问题,您最终会得到一个有序的字典,表示您的文件内容来自 [section]
从上到下。
如果您想要其中的列表,请不要做您正在做的 list(dict(...
事情。更好地使用列表理解:
src = [value for key, value in config.items('src')]
dst = [value for key, value in config.items('dst')]
然后您将在 src
和 dst
.
中得到您想要的和订购的东西
我在从 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
我猜你正在使用内置 ConfigParser
。根据文档,这是使用 collections.OrderedDict
将值存储在您的文件中,因此虽然读取是按顺序进行的,但应该没问题,您最终会得到一个有序的字典,表示您的文件内容来自 [section]
从上到下。
如果您想要其中的列表,请不要做您正在做的 list(dict(...
事情。更好地使用列表理解:
src = [value for key, value in config.items('src')]
dst = [value for key, value in config.items('dst')]
然后您将在 src
和 dst
.