Python. Askopenfilename
Можно ли, вызывая "askopenfilename", спрятать некоторые файлы?
К примеру, в папке находятся файлы с расширением ".jpg" и ".png", но пользователь должен видеть лишь ".png".
Источник: Stack Overflow на русском
Можно ли, вызывая "askopenfilename", спрятать некоторые файлы?
К примеру, в папке находятся файлы с расширением ".jpg" и ".png", но пользователь должен видеть лишь ".png".
Да. Как-то так фильтры ставятся вроде:
tkFileDialog.askopenfilename(defaultextension='.jpg',
filetypes=[('All files','*.*'),
('PNG pictures','*.png'),
('JPEG pictures','*.jpg')])
Можно использовать filetypes
параметр, чтобы показывать только избранные файлы как упомянул @igumnov.
Вот самодостаточный пример для Питона 2 & 3, который печатает имя файла, выбранного пользователем, причём первоначально только png-файлы показаны:
#!/usr/bin/env python
import os
try:
from Tkinter import Tk
from tkFileDialog import askopenfilename
except ImportError: # Python 3
from tkinter import Tk
from tkinter.filedialog import askopenfilename
root = Tk()
root.withdraw() # hide the window
filename = askopenfilename(
parent=root,
title='Images',
initialdir=os.path.expanduser(u'~/Pictures'),
filetypes=[('PNG images', '.png'), ('JPEG images', '.jpg')])
root.destroy()
print(filename)