使用TKinter可以了解在asksaveasfilename
或askopenfilename
中选择了哪种文件类型?我想根据所选的文件类型执行不同的操作。
这是我的解决方案,但它有缺点:
from pathlib import Path
from tkinter.filedialog import asksaveasfilename
from tkinter.messagebox import showerror
file_path = asksaveasfilename(filetypes=(("Image file", '*.jpg'),
("Text file", '*.txt')))
if file_path:
if Path(file_path).suffix == '.jpg':
print("Image")
elif Path(file_path).suffix == '.txt':
print("Text")
else:
showerror("Save", "Unknown extension '{}'.".format(Path(file_path).suffix))
答案 0 :(得分:1)
使用TKinter有一种方法可以知道在asksaveasfilename或askopenfilename中选择了哪种文件类型
不,没有。该对话框没有要共享的类型信息。您指定的文件类型只是用户的过滤器,用户可以自由使用或忽略。您可以从对话框中获得的唯一信息是用户是否选择了文件,以及他们选择的文件的路径。您无法从对话框中获得其他信息。