在filedialog模块下提供了各种用于生成文件对话框的工具函数,如下所示:
askopenfile():生成打开单个文件的对话框,返回所选文件的文件流,程序可通过该文件流读取文件内容
askopenfiles():生成打开多个文件的对话框,返回多个所选择文件的文件流组成的列表,程序可通过这些文件流读取文件内容
askopenfilename():生成打开单个文件的对话框,返回所选择文件的文件路径
askopenfilenames():生成打开多个文件的对话框,返回多个所选择文件的文件路径组成的元组
asksaveasfile():生成保存文件的对话框,返回所选文件的文件输出流,程序可通过该文件输出流向文件写入数据
asksaveasfilename():生成保存文件的对话框,返回所选择文件的文件路径
askdirectory():生成打开目录的对话框
上面用于生成打开文件的对话框的工具函数有如下选项
defaultextension:指定默认拓展名,当用户没有输入拓展名时,系统会默认添加该选项指定的拓展名
filetypes:指定该文件对话框中能查看的文件类型。该选项是一个序列,可能指定多个文件类型,可通过“*”只当浏览所有文件
initialdir:指定初始打开的目录
initialfile:指定所选择的文件
parent:指定该对话框的属主窗口
title:指定该对话框的标题
multiple:只当是否允许多选
下面代码演示了文件对话框的各个工具函数的用法:
from tkinter import *
# 导入ttk
from tkinter import ttk
# 导入filedialog
from tkinter import filedialog
class App:
def __init__(self, master):
self.master = master
self.initWidgets()
def initWidgets(self):
# 创建7个按钮,并为之绑定事件处理方法
ttk.Button(self.master, text='打开单个文件', command=self.open_file).pack(side=LEFT, ipadx=5, ipady=5, padx=10)
ttk.Button(self.master, text='打开多个文件', command=self.open_files).pack(side=LEFT, ipadx=5, ipady=5, padx=