使用 askopenfilename 在 Tkinter 中打开和读取文件?
当用户想要从目录中打开文件时,最好的方法是显示一个弹出窗口,用户选择要打开的文件。和大多数工具和部件一样,Tkinter 提供了一种打开对话框以打开文件、读取文件、保存文件的方法。所有这些功能都属于 Python 中的 filedialog 模块。就像其他部件一样,需要在笔记本中显式导入 filedialog。还有一些包含 filedialog 的其他模块,如 askdirectory、askopenfilename、askopenfile、askopenfilenames、asksaveasfilename 等。
示例
在本示例中,我们将定义一个函数,使用 askopenfilename 打开并读取文件。
我们将定义一个应用程序,其中包含一个按钮以打开文件,并将文件的内容打包到 Label 部件中。为了读取文件内容,我们将使用 read() 方法以及文件名。
# 导入 tkinter 库
from tkinter import *
from tkinter import ttk
from tkinter import filedialog
# 创建一个 tkinter 框架或窗口实例
win= Tk()
win.geometry("750x150")
# 定义用于以 filedialog 打开特定文件的函数
def open_files():
path= filedialog.askopenfilename(title="选择一个文件", filetypes=(("文本文件","*.txt"),("所有文件","*.*")))
file= open(path,'r')
txt= file.read()
label.config(text=txt, font=('Courier 13 bold'))
file.close()
button.config(state=DISABLED)
win.geometry("750x450")
# 创建一个空标签以读取文件的内容
label= Label(win,text="", font=('Courier 13 bold'))
label.pack()
# 创建一个按钮以打开文件
button=ttk.Button(win, text="打开",command=open_files)
button.pack(pady=30)
win.mainloop()
输出
运行上述代码将显示一个窗口,其中包含一个按钮,单击该按钮将打开一个新窗口以加载和读取文件内容。
单击“打开”按钮在窗口中打开文件(文本,”*”)。