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

时间:2013-07-25 16:08:14

标签: python file limit tk

Python版本:2.7 Tk版本:8.5

请参阅我之前的问题how to add the selected files from dialog window to a dictionary?

我正在尝试从对话框窗口中选择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 {}

任何解决方案?感谢。

1 个答案:

答案 0 :(得分:2)

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

您需要在循环之前转换它。如果您的文件名都不包含空格,那么这应该只是一个简单的问题:

file_list = files.split()

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

根据this page,这实际上可能是一个错误。但是,还建议将字符串转换为元组:

file_list=  master.tk.splitlist(filez)

希望这有帮助。