在文件对话框中设置的tkinter文件模式

Fli*_*int 5 python tkinter

为了在文件对话框中获得具有给定扩展名的一组预期文件,我在多个地方看到过将模式写为('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 
Run Code Online (Sandbox Code Playgroud)

Bry*_*ley 8

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

分别声明每个后缀

您可以在单独的行中指定每个后缀。它们将合并为下拉列表中的一项:

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

使用元组

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

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


fur*_*ras 4

使用元组('.png', '.jpg')

 ('image files', ('.png', '.jpg')),
Run Code Online (Sandbox Code Playgroud)