Добавить несколько расширений в один тип файла mac - tkinter/filedialog/askopenfilename
Я пытаюсь использовать tkinter
filedialog
выбрать файл в Mac.
Это прекрасно работает с одним типом файла следующим образом:
filedialog.askopenfilename(filetypes=[("Excel files", "*.xlsx)])
Тем не менее, я хочу выбрать либо xlsx
или же xls
файлы. Я искал и нашел вопрос filedialog, tkinter и открытие файлов. Я использую аналогичный способ, но он не работает с Mac, если я перехожу на это:
filedialog.askopenfilename(filetypes=[("Excel files", "*.xlsx; *.xls")])
Как я должен изменить, чтобы выбрать либо xlsx
или же xls
файлы в диалоге файлов?
4 ответа
Кажется, что вы должны отделить шаблоны подстановки пробелом, а не ;
(проверено на Python 3.5.1):
from tkinter import filedialog
filedialog.askopenfilename(filetypes=[("Excel files", "*.xlsx *.xls")])
По крайней мере, в Windows, если вы хотите иметь возможность открывать несколько типов файлов, но всегда только по одному, ваш код должен выглядеть следующим образом:
filedialog.askopenfilename(filetypes=[("Excel file","*.xlsx"),("Excel file 97-2003","*.xls")])
Если вы хотите иметь возможность выбирать оба типа файлов одновременно, не переключаясь между ними, они должны иметь одинаковое имя.
filedialog.askopenfilename(filetypes=[("Excel file","*.xlsx"),("Excel file", "*.xls")])
У меня несколько расширений в 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",
"*.*")))
filedialog.askopenfilename(initialdir="/",title="Select an Image",filetypes=[("PNG","asterisk.png"),("JPG","asterisk.jpg"),("JPEG","asterisk.jpeg"),("ICON","asterisk.ico")])
Чтобы использовать несколько типов файлов, вы должны добавить каждый тип файла, который вы хотите включить, в виде отдельных двух кортежей, объединенных в список, разделенных запятыми. Или, если вы хотите разрешить все типы файлов, вы можете попробовать:
Примечание. Пожалуйста, используйте фактический символ звездочки с клавиатуры.