askopenfilenames 选择多个文件

0 投票
1 回答
6567 浏览
提问于 2025-04-18 10:05

我在一个Unix平台上使用Python 3.3。我看到很多例子中,下面的代码可以正常工作,但我遇到了问题。当我选择多个文件时,弹出了一个错误信息框,内容是:"File /python/input_files/file1.txt file2.txt" does not exist。这个错误是有道理的(因为它试图打开一个包含多个文件的字符串),但我不明白为什么其他人没有遇到这个问题,我该怎么解决呢?selectFiles是通过一个按钮来调用的。感谢任何帮助。

from tkinter import *
from tkinter import ttk
from tkinter.filedialog import askopenfilenames

def selectFiles(self):
    files = askopenfilenames(filetypes=(('Text files', '*.txt'),
                                   ('All files', '*.*')),
                                   title='Select Input File'
                                   )
    fileList = root.tk.splitlist(files)
    print('Files = ', fileList)

这是完整的代码:

#!/usr/local/bin/python3.3

from tkinter import *
from tkinter import ttk
from tkinter.filedialog import askopenfilenames

class multifilesApp(Frame):
    def __init__(self,master=None):
        Frame.__init__(self,master)                                 

    def initializeUI(self):
        self.master.title('Select Files Application')
        self.grid(row=0, column=0,sticky=W)

        # Create the button to select files
        self.button1 = Button(self.master, text='Select Files', command=self.selectFiles, width=10)
        self.button1.grid(row=30, column=0)

    def selectFiles(self):
        files = askopenfilenames(filetypes=(('Text files', '*.txt'),
                                       ('All files', '*.*')),
                                       title='Select Input File'
                                       )
        InputFileList = root.tk.splitlist(files)
        print('Files = ', InputFileList)


# Begin Main
if __name__ == "__main__":
    root = Tk()
    root.minsize(width=250, height=400)
    root.geometry("1200x800")

    # Call the parser GUI application
    app = multifilesApp(master=root)
    app.initializeUI()

    app.mainloop()

1 个回答

0

可能在Sun4u上,Tcl/Tk有问题。

试着运行Tcl/Tk中的示例(example.tcl)。

package require Tk

set filename [tk_getOpenFile -multiple true]

puts $filename

运行(可能是):

tclsh example.tcl

撰写回答