扫码一下
查看教程更方便
本文将演示如何使用文件对话框使用 filedialog
类中的 askopenfilename()
方法打开文件。无论文件在你的计算机上的什么位置。
当我们处理现实世界的 GUI 应用程序并希望添加一个文件对话框功能来打开文件(图像、PDF 文件或任何东西)时,你如何使用 Tkinter 做到这一点?使用称为 filedialog
类的东西真的很容易。
askopenfilename()
负责在 Tkinter GUI 应用程序中打开和读取文件;此方法存在于 filedialog 类中。
所以首先,我们需要导入这个类,如下所示。
from tkinter import filedialog
创建 Tk()
类的实例后,我们需要在我们的 GUI 中添加一个按钮,因此当我们单击此按钮时,它将启动一个文件对话框,我们可以选择我们的文件。
open_btn = Button(text="Open",command=openFile)
open_btn.pack()
我们创建了一个帮助打开文件对话框的 openFile()
函数。我们正在使用 filedialog
类中的方法。
def openFile():
# takes file location and its type
file_location = filedialog.askopenfilename(initialdir=r"F:\python\pythonProject\files",
title="Dialog box",
filetypes= (("text files","*.txt"),
("all files","*.*")))
# read selected file by dialog box
file = open(file_location,'r')
print(file.read())
file.close()
在这个方法中,我们必须传递一堆不同的选项。
askopenfilename()
方法返回一个字符串,该字符串是你的文件所在的文件路径,因此我们将文件路径存储在一个名为 file_location 的变量中。
现在我们将打开并读取该文件的内容以创建一个文件变量,并且我们使用了接受文件路径和模式的 open 函数。
我们使用 "r" 模式以阅读模式打开文件。read() 方法有助于读取整个内容并将其显示在控制台中。
完整的源代码在这里。
from tkinter import *
from tkinter import filedialog
def openFile():
# takes file location and its type
file_location = filedialog.askopenfilename(initialdir=r"F:\python\pythonProject\files",
title="Dialog box",
filetypes= (("text files","*.txt"),
("all files","*.*")))
# read selected file by dialog box
file = open(file_location,'r')
print(file.read())
file.close()
gui_win = Tk()
gui_win.geometry('200x200')
gui_win.title('Delftstack')
open_btn = Button(text="Open",command=openFile)
open_btn.pack()
gui_win.mainloop()
输出结果: