【发布时间】:2018-12-15 07:30:00
【问题描述】:
Tkinter 是一个很棒的包,filedialog 有一些非常有用的功能。 askopenfilename 和 asksaveasfilename 都具有 'filetypes' 属性,但它们的工作方式不同。
使用 askopenfilename,它在 GUI 中提供选项并返回文件类型,但是
使用 asksaveasfilename,它仅在 GUI 中提供选项,不返回文件类型。示例代码如下所示:
import tkinter as tk
from tkinter import filedialog
old_file_name = filedialog.askopenfilename(title = "Choose file",filetypes=\
(('All files','*.*'),\
('tagData','*.tagData'),\
('FDAX files','*.fdax'),\
('CSV files','*.csv')))
new_file_name = filedialog.asksaveasfilename(initialdir = "/",filetypes=\
(('tagData','*.tagData'),\
('FDAX files','*.fdax'),\
('CSV files','*.csv'),\
('XLS files','*.xls')))
print(old_file_name)
print(new_file_name)
输出:
C:/Users/christian.abbott/Desktop/FDAX_Error/example.csv
C:/Users/christian.abbott/Desktop/example
我一直在寻找好的 filedialog 文档,但一直找不到。为什么包会这样?是否有更好的选择来提取用户提示文件路径的完整路径?
【问题讨论】:
-
第二种情况下
example是怎么选的?您是在对话框中输入example,还是在GUI 中双击该选项? -
我的测试都给出了使用
filedialog.asksaveasfilename时的扩展名。
标签: python python-3.x tkinter openfiledialog filedialog