tkinter文件对话框中设置文件匹配模式

9
为了在文件对话框中获取给定扩展名的预期文件集,我在几个地方看到过将模式写成 ('label','pattern') 的形式,其中模式为一个字符串。但是下面的内容无法正常工作。
from tkinter import filedialog as fd
fd.askopenfilenames(
    title='Choose a file',
    filetypes=[('all files', '.*'),
               ('text files', '.txt'),
               ('image files', '.png;.jpg'), # nope,returns *.png;.jpg
               ('image files!', '*.png;*.jpg')]) # neither 
3个回答

10
如果你想将两个或多个后缀与一个文件类型(例如:“图像文件”)相关联,有几种方法可以做到。

单独声明每个后缀

你可以在不同的行上指定每个后缀。它们将合并为下拉列表中的一项:
filenames = fd.askopenfilenames(
    title="Choose a file",
    filetypes=[('all files', '.*'),
               ('text files', '.txt'),
               ('image files', '.png'),
               ('image files', '.jpg'),
           ])

使用元组

您还可以将它们指定为元组:

filenames = fd.askopenfilenames(
    title="Choose a file",
    filetypes=[('all files', '.*'),
               ('text files', '.txt'),
               ('image files', ('.png', '.jpg')),
           ])

4
使用元组 ('.png', '.jpg')
 ('image files', ('.png', '.jpg')),

-2
import tkinter
options = {}
options['defaultextension'] = '.txt'
options['filetypes'] = [('all files', '.*'), ('text files', '.txt'),('asc files', '.asc')]
options['initialdir'] = '.'
file_open = tkinter.filedialog.askopenfile(mode='r', **options)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接