TKinter从保存对话中返回文件类型?

时间:2017-08-22 17:12:42

标签: python tkinter

使用TKinter可以了解在asksaveasfilenameaskopenfilename中选择了哪种文件类型?我想根据所选的文件类型执行不同的操作。

这是我的解决方案,但它有缺点:

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))

1 个答案:

答案 0 :(得分:1)

  

使用TKinter有一种方法可以知道在asksaveasfilename或askopenfilename中选择了哪种文件类型

不,没有。该对话框没有要共享的类型信息。您指定的文件类型只是用户的过滤器,用户可以自由使用或忽略。您可以从对话框中获得的唯一信息是用户是否选择了文件,以及他们选择的文件的路径。您无法从对话框中获得其他信息。