我目前有这个tkintr应用程序,允许您上传文件或多个文件。我希望能够在控制台上打印选择了多少文件。
目前,我只能使用print self.uploadedfilenames
我尝试len(self.uploadedfilenames)
,但我得到一个52的文件,我不明白它是什么
#!/usr/bin/env python
from Tkinter import *
import tkFileDialog
import tkMessageBox
class Application(object):
def __init__(self, master):
frame = Frame(master)
frame.pack()
self.file_opt = options = {}
options['defaultextension'] = '.txt'
options['filetypes'] = [('all files', '.*'), ('text files', '.txt')]
options['initialdir'] = 'C:\\'
options['initialfile'] = 'myfile.txt'
options['parent'] = master
options['title'] = 'This is a title'
#UPLOAD SECTION
Label(frame, text='Upload: ').grid(row=1, column=1)
self.upload = Button(frame, text = "Browse", command = self.askopenfile, width = 10).grid(row=1, column=2)
def askopenfile(self):
self.uploadedfilenames = tkFileDialog.askopenfilenames(multiple=True)
if self.uploadedfilenames == '':
tkMessageBox.showinfo(message="No file was selected")
return
else:
print len(self.uploadedfilenames)
root = Tk()
root.title('application')
_ = Application(root)
root.mainloop()
有没有办法找出有多少文件?
答案 0 :(得分:1)
您看到的长度是因为它没有按预期返回元组,而是返回一个字符串。这是由于Windows错误。
当我在电脑上测试你的代码时,一切都很好。 请看这里:
Parsing the results of askopenfilenames()?
此外,当您遇到类似问题时,只需打印
即可self.uploadedfilenames
然后你可以看到返回的内容。我认为这会帮助你。