tkinter file pattern set in a file dialog

python, tkinter

Solution

If you are trying to associate two or more suffixes with a single file type (eg: "image files"), there are a couple of ways to do it.

declare each suffix separately

You can specify each suffix on a separate line. They will be combined into one item in the dropdown list:

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

using a tuple

You can also specify them as a tuple:

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

Problem

To get the set of expected files with given extensions in a file dialog, I've seen in several places written patterns as `('label','pattern')`, the pattern being in one string. However the following doesn't work ``` 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 ```

Original source