在一个文件类型中添加多个扩展名mac-tkinter / filedialog / askopenfilename

时间:2017-06-07 04:33:13

标签: python macos tkinter filedialog

我正在尝试使用tkinter filedialog在Mac中选择文件。

以这种方式使用一种文件类型可以正常工作:

filedialog.askopenfilename(filetypes=[("Excel files", "*.xlsx)])

但是,我想选择xlsxxls个文件。我搜索并找到了一个问题filedialog, tkinter and opening files。我使用类似的方法,但如果我改为这个,它不适用于Mac:

filedialog.askopenfilename(filetypes=[("Excel files", "*.xlsx; *.xls")])

如何更改以在文件对话框中选择xlsxxls文件?

3 个答案:

答案 0 :(得分:7)

您似乎必须将通配符模式与空间分开,而不是;(在Python 3.5.1上验证):

from tkinter import filedialog

filedialog.askopenfilename(filetypes=[("Excel files", "*.xlsx *.xls")])

答案 1 :(得分:0)

至少在Windows上,如果要能够打开多个文件类型,但一次只能打开一个,则代码必须如下所示:

filedialog.askopenfilename(filetypes=[("Excel file","*.xlsx"),("Excel file 97-2003","*.xls")])

如果您希望能够同时选择两种文件类型而不在它们之间进行切换,则它们必须具有相同的名称。

filedialog.askopenfilename(filetypes=[("Excel file","*.xlsx"),("Excel file", "*.xls")])

答案 2 :(得分:0)

Windows 10 上的多个扩展对我来说就像这样。例如搜索python文件。

py_exts = r"*.py  *.py3 *.pyc  *.pyo  *.pyw  *.pyx  *.pyd  *.pxd  *.pyi  *.pyi  *.pyz  *.pywz *.rpy  *.pyde *.pyp  *.pyt  *.xpy  *.ipynb"  

filename = filedialog.askopenfilename(initialdir=SEEN,
                                              title="Select a File",
                                              filetypes=(("video files",
                                                          video_exts),
                                                         ("python files", py_exts),
                                                         ("all files",
                                                          "*.*")))