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

时间:2016-10-27 19:24:46

标签: 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 

3 个答案:

答案 0 :(得分:3)

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

单独声明每个后缀

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

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')),
           ])

答案 1 :(得分:1)

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

 ('image files', ('.png', '.jpg')),

答案 2 :(得分:-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)