对话框窗口选择文件的数量限制



Python版本:2.7 Tk版本:8.5

请参阅我之前的问题,如何将对话框窗口中选定的文件添加到词典中?

我正试图从对话框窗口中选择500个文件,并提取它们的名称作为字典的关键字。文件总大小约为200M。我不知道为什么我有一本空字典。然而,如果我每次选择更少的文件,比如100个,它每次都能很好地工作。所以我的问题是,对话框窗口选择文件或字典中的键有数量限制吗?

sys.path.append("C:MY PATH")
os.environ['PATH']+=";C:MY PATH"
print "Please select your txt files in the dialog window >>"
filez = tkFileDialog.askopenfilenames(parent=root,multiple='multiple',title='Choose a file',filetypes=[('txt file','.txt'),('All files','.*')])
mydict = {}
for FilenameWithPath in filez:
    path, Filename = os.path.split(str(FilenameWithPath))
##    Filename = sys.path.basename(FilenameWithPath)
    mydict[Filename] = len(mydict)
print "mydict " + str(mydict)   
print "n"

如果我选择了所有500个文件,它只会给出

mydict {}

有什么解决方案吗?谢谢

我想我可以看出问题出在哪里了。我做了一些调试,发现返回到filez的数据类型是unicode字符串(您似乎需要一个列表或元组)。

您需要在循环之前对此进行转换。如果你的文件名中没有空格,这应该只是一个简单的问题:

file_list = files.split()

但是,如果不是这种情况,则上述操作将不起作用,并且包含空格的文件名用大括号{}括起来。

根据这个页面,这实际上可能是一个错误。然而,也建议将字符串转换为元组:

file_list=  master.tk.splitlist(filez)

希望这能有所帮助。

最新更新