Tkinter 文件操作

使用 filedialog 模块可以在图形界面中进行文件操作

文件操作

from tkinter import filedialog

filedialog 需要先创建一个窗口对象,然后调用相应的方法

参数说明:

  • title:窗口标题
  • filetypes:文件类型(元组中的每个元素是一个文件类型,每个文件类型是一个元组,第一个元素是文件类型的描述,第二个元素是文件类型的扩展名,多个文件类型之间用分号隔开)
  • initialdir:初始目录

打开文件

返回文件对象

# 打开文件,返回一个文件对象
print("请选择文件!", flush=True)  # flush=True表示立即输出,不缓存
file = filedialog.askopenfile(
    title="请选择文件",
    filetypes=(("Python文件", "*.py;" "*.pyw"), ("文本文件", "*.txt"), ("所有文件", "*.*")),
    initialdir=r"O:\vscode\Python",
)
print(f"变量:{file},类型:{type(file)}")

# 选择多个文件,返回一个文件对象列表
print("请选择多个文件!", flush=True)
files = filedialog.askopenfiles(
    title="请选择多个文件",
    filetypes=(("Python文件", "*.py;" "*.pyw"), ("文本文件", "*.txt"), ("所有文件", "*.*")),
    initialdir=r"O:\vscode\Python",
)
print(f"变量:{files},类型:{type(files)}")

返回文件路径

# 选择文件,返回文件的路径
print("请选择文件!", flush=True)
file = filedialog.askopenfilename(
    title="请选择文件",
    filetypes=(("Python文件", "*.py;" "*.pyw"), ("文本文件", "*.txt"), ("所有文件", "*.*")),
    initialdir=r"O:\vscode\Python",
)
print(f"变量:{file},类型:{type(file)}")

# 选择多个文件,返回文件的路径列表
print("请选择多个文件!", flush=True)
files = filedialog.askopenfilenames(
    title="请选择多个文件",
    filetypes=(("Python文件", "*.py;" "*.pyw"), ("文本文件", "*.txt"), ("所有文件", "*.*")),
    initialdir=r"O:\vscode\Python",
)
print(f"变量:{files},类型:{type(files)}")

保存文件

返回文件对象

# 选择保存位置,创建文件并返回一个文件对象
print("请选择保存位置!", flush=True)
filename = filedialog.asksaveasfile(
    defaultextension=".txt", filetypes=[("文本文件", "*.txt"), ("所有文件", "*.*")]
)
print(f"变量:{filename},类型:{type(filename)}")

返回文件路径

# 选择保存位置,创建文件并返回文件的路径
print("请选择保存位置!", flush=True)
filename = filedialog.asksaveasfilename(
    defaultextension=".txt", filetypes=[("文本文件", "*.txt"), ("所有文件", "*.*")]
)
print(f"变量:{filename},类型:{type(filename)}")

选择目录

# 选择文件夹,返回文件夹路径
print("请选择文件夹!", flush=True)
folder = filedialog.askdirectory(title="请选择文件夹", initialdir=r"D:\cakkl\OneDrive\桌面")
print(f"变量:{folder},类型:{type(folder)}")