如何获取在tkinter Python中上传的文件数量

时间:2015-08-31 10:07:56

标签: python python-2.7 tkinter

我目前有这个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()

有没有办法找出有多少文件?

1 个答案:

答案 0 :(得分:1)

您看到的长度是因为它没有按预期返回元组,而是返回一个字符串。这是由于Windows错误。

当我在电脑上测试你的代码时,一切都很好。 请看这里:

Parsing the results of askopenfilenames()?

此外,当您遇到类似问题时,只需打印

即可
self.uploadedfilenames

然后你可以看到返回的内容。我认为这会帮助你。