关于Python tkinter库中filedialog的四个最有用函数(一)
tkinter库简介 :
tkinter是python默认的GUI库,它是python的内置库不需要安装。而filedialog是文件对话框,在程序运行该过程中,当你需要手动选择文件或手动选择文件存储路径时,就需要用到tkinter库中filedialog提供的函数。
1、导入模块
import tkinter as tk
from tkinter import filedialog
root = tk.Tk() # 创建一个Tkinter.Tk()实例
root.withdraw() # 将Tkinter.Tk()实例隐藏
2、filedialog提供的四个最有用的函数
filedialog.askopenfilename(***options)
filedialog.askopenfilenames(**options)
filedialog.asksaveasfile(**options)
filedialog.askdirectory(**options)
1、几个常用函数的可选参数 **options
这里介绍几个重要的可选参数
title --指定文件对话框的标题栏文本。(对选择文件时进行提示,建议必写该参数)。
defaultextension --指定文件的后缀,例如:defaultextension=’.jpg’,那么当用户输入一个文件名’Python’的时候,文件名会自动添加后缀为’Python.jpg’ 。–注意:如果用户输入文件名包含后缀,那么该选项不生效。(不必须)
filetypes --指定筛选文件类型的下拉菜单选项,该选项的值是由二元组构成的列表,每个二元组是由(类型名,后缀)构成,例如:filetypes=[(‘文本’, ‘.txt’), (‘栅格’, ‘.tif’), (‘动图’, ‘.gif’)]。(看情况,当文件夹中文件很多且类型很多,建议给出该参数)
initialdir --指定打开保存文件的默认路径,默认路径是当前文件夹。(不必须)
multiple --是否确定选择多个文件,if true user may select more than one file。(不必须)
2、四个函数讲解
-
filedialog.askopenfilename(**options)
自动打开选取窗口,手动选择一个文件,返回文件路径,类型为字符串。
可选参数:title、filetypes、initialdir、multiple -
filedialog.askopenfilenames(**options)
同时选择多个文件,返回一个元组,包括所有选择文件的路径。
可选参数:title、filetypes、initialdir -
filedialog.asksaveasfile(**options)
选择文件存储路径并命名,可选参数:title、filetypes、initialdir、efaultextension
如果 filetypes=[(“文本文档”, “.txt”)] ,可以不写文件扩展名,扩展名自动为txt;
如果 *filetypes=[(‘All Files’, ’ ')] ,一定写文件扩展名,否则无扩展名;
如果 filetypes=[(“文本文档”, “.txt”)] ,efaultextension=‘.tif’,可以不写文件扩展名,扩展名自动为tif。 -
filedialog.askdirectory(**options)
选择一个文件夹,返回文件夹路径。
可选参数:title、initialdir
3、代码实例应用
import tkinter as tk
from tkinter import filedialog
root = tk.Tk() # 创建一个Tkinter.Tk()实例
root.withdraw() # 将Tkinter.Tk()实例隐藏
# 选择一个文件
file_path = filedialog.askopenfilename(title='请选择一个文件', initialdir=r'D:\冰川数据\物质平衡模型测试数据', filetypes=[(
"文本文档", ".txt"), ('Excel', '.xls .xlsx'), ('All Files', ' *')], defaultextension='.tif', multiple=True)
print(file_path)
# 选择多个文件
file_paths = filedialog.askopenfilename(title='请选择多个文件', initialdir=r'D:\冰川数据\物质平衡模型测试数据', filetypes=[(
"文本文档", ".txt"), ('Excel', '.xls .xlsx'), ('All Files', ' *')])
print(file_paths)
# 选择文件存储路径
save_file = filedialog.asksaveasfile(title='请选择文件存储路径', initialdir=r'D:\冰川数据\物质平衡模型测试数据', filetypes=[(
"文本文档", ".txt"), ('Excel', '.xls .xlsx'), ('All Files', ' *')], defaultextension='.tif')
print(save_file)
# 选择要处理的文件的文件夹
dir_path = filedialog.askdirectory(title='选择影像存放的位置!', initialdir=r'D:\冰川数据\物质平衡模型测试数据')
print(dir_path)