赞
踩
转载:
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_45417938/article/details/105729589
在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=10) ttk.Button(self.master, text='获取单个打开文件的文件名', command=self.open_filename).pack(side=LEFT, ipadx=5, ipady=5, padx=10) ttk.Button(self.master, text='获取多个打开文件的文件名', command=self.open_filenames).pack(side=LEFT, ipadx=5, ipady=5, padx=10) ttk.Button(self.master, text='获取保存文件', command=self.save_file).pack(side=LEFT, ipadx=5, ipady=5, padx=10) ttk.Button(self.master, text='获取保存文件的文件名', command=self.save_filename).pack(side=LEFT, ipadx=5, ipady=5, padx=10) ttk.Button(self.master, text='打开目录', command=self.open_directory).pack(side=LEFT, ipadx=5, ipady=5, padx=10) def open_file(self): # 调用askopenfile方法获取单个打开的文件 print(filedialog.askopenfile(title='打开单个文件', filetypes=[('文本文件', '*.txt'), ('Python源文件', '*.py')], # 只处理的文件类型 initialdir='d:/')) # 初始目录 def open_files(self): # 调用askopenfiles方法获取多个打开的文件 print(filedialog.askopenfiles(title='打开多个文件', filetypes=[('文本文件', '*.txt'), ('Python源文件', '*.py')], # 只处理的文件类型 initialdir='d:/')) # 初始目录 def open_filename(self): # 调用askopenfilename方法获取单个文件的文件名 print(filedialog.askopenfilename(title='打开单个文件', filetypes=[('文本文件', '*.txt'), ('Python源文件', '*.py')], # 只处理的文件类型 initialdir='d:/')) # 初始目录 def open_filenames(self): # 调用askopenfilenames方法获取多个文件的文件名 print(filedialog.askopenfilenames(title='打开多个文件', filetypes=[('文本文件', '*.txt'), ('Python源文件', '*.py')], # 只处理的文件类型 initialdir='d:/')) # 初始目录 def save_file(self): # 调用asksaveasfile方法保存文件 print(filedialog.asksaveasfile(title='保存文件', filetypes=[('文本文件', '*.txt'), ('Python源文件', '*.py')], # 只处理的文件类型 initialdir='d:/')) # 初始目录 def save_filename(self): # 调用asksaveasfilename方法获取保存文件的文件名 print(filedialog.asksaveasfilename(title='保存文件', filetypes=[('文本文件', '*.txt'), ('Python源文件', '*.py')], # 只处理的文件类型 initialdir='d:/')) # 初始目录 def open_directory(self): # 调用askdirectory方法打开目录 print(filedialog.askdirectory(title='打开目录', initialdir='d:/')) # 初始目录 root = Tk() root.title('文件对话框测试') App(root) root.mainloop()
当选择打开指定文件后可以在控制台看到被打开文件的文件流:
可选文件类型为我们代码中设置的txt文本文件和pyPython源文件
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。