【发布时间】:2013-07-25 15:46:27
【问题描述】:
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 {}
有什么解决办法吗?谢谢。
【问题讨论】:
-
对不起,不知道是不是我理解错了,但是你是说用户实际上会从文件对话框中手动选择500个文件?如果有一种系统的方法来确定您正在使用哪些文件而不是用户输入,那么我建议使用类似 os.walk() 的方法来检查目录结构并获取所需文件的详细信息。请您提供有关您的要求的更多信息。
-
@ChrisProsser,是的,它是手动的,b/c 可以更灵活地选择你想要的。谢谢你的推荐。我改了代码,你能检查一下吗?
-
@ChrisProsser 我注意到这里的错误,结果返回一个 unicode 字符串。不知何故,有时它会在期望列表中返回。
-
@Shengen:它是否返回 unicode 字符串取决于您选择了多少文件——相对较少的文件似乎可以工作,但数量不多,这似乎是您的错误发现了。