Tkinter 文件对话框
- Python 的 Tkinter 库中的文件对话框
-
在 Python 中使用
askopenfilename()
方法通过 Tkinter 对话框浏览文件 -
在 Python 中使用
asksaveasfile()
方法通过 Tkinter 对话框保存文件 -
在 Python 中使用 Tkinter 的
askdirectory()
方法选择目录
本教程将演示如何使用 filedialog
Tkinter 类创建文件对话框并探索几种方法。
Python 的 Tkinter 库中的文件对话框
Python Tkinter 库提供了许多可用于处理文件的对话框。通过在 Tkinter 中开发,你不需要自己创建标准对话框。
文件对话框包括打开文件对话框、保存文件框等。
文件对话框可帮助你打开保存文件或目录。当你单击文件打开它时,你会看到这种对话框。
filedialog
类有助于创建对话框;无需从头开始编写代码。
在 Python 中使用 askopenfilename()
方法通过 Tkinter 对话框浏览文件
选项 | 解释 |
---|---|
title |
可以使用此选项在对话框中设置名称。 |
initialdir |
采用路径以在特定目录中打开对话框。 |
filetypes |
这个选项需要一个元组。你可以传递特定的文件名和扩展名。 |
defaultextension |
我们不指定文件扩展名。如果我们在方法中传递这个选项,对话框会自动选择传递给值的扩展名。此选项仅适用于保存对话框。 |
我们可以使用 askopenfilename()
方法来上传文件。此方法返回文件位置。
在这个例子中,我们创建了一个 open()
函数。open()
函数使用 askopenfilename
方法帮助对话框出现。
from tkinter import Tk, filedialog, Button, Label
from PIL import ImageTk, Image
root = Tk()
root.geometry("400x400")
def open():
# Create a dialog box
root.file_name = filedialog.askopenfilename(
initialdir="your directory path",
title="file uploader",
filetypes=(("jpg files", "*.jpg"), ("all files", "*.*")),
)
# takes path that is selected by dialog box
selected_image = Image.open(root.file_name)
# resize image
selected_image = selected_image.resize((300, 205), Image.ANTIALIAS)
# displays an image
root.image = ImageTk.PhotoImage(selected_image)
selected_image_label = Label(root, image=root.image).pack()
btn = Button(root, text="upload image", command=open).pack()
root.mainloop()
在 Python 中使用 asksaveasfile()
方法通过 Tkinter 对话框保存文件
如果你阅读本文,你已经熟悉另存为对话框。在这种情况下,我们使用 asksaveasfile()
方法。
此方法可让你将文件保存在所需位置。
from tkinter import *
from tkinter import filedialog
def saveFile():
file = filedialog.asksaveasfile(
initialdir="your directory path",
defaultextension=".txt",
filetypes=[
("Text file", ".txt"),
("HTML file", ".html"),
("All files", ".*"),
],
)
if file is None:
return
# get the text
filetext = str(text.get(1.0, END))
file.write(filetext)
file.close()
win = Tk()
button = Button(text="save", command=saveFile)
button.pack()
# create text box
text = Text(win)
text.pack()
win.mainloop()
saveFile()
方法有助于从 Text
组件中获取文本,并允许你选择要保存此文件的位置。
We can see the file is saved in the given location.
在 Python 中使用 Tkinter 的 askdirectory()
方法选择目录
此方法仅选择一个目录。此方法不允许选择任何文件。
from tkinter import Tk, filedialog, Button
win = Tk()
def openDirectory():
dir_path = filedialog.askdirectory(
initialdir="your directory path", title="Select directory"
)
btn = Button(win, text="upload image", command=openDirectory).pack()
win.mainloop()
如果遇到 Unicode 错误,你可以将 r
放在路径前。例如,r"your directory path"
。
我们已经讨论了主要可用的方法,但在 filedialog
类中仍然存在更多方法。点击这里了解更多方法。
Hello! I am Salman Bin Mehmood(Baum), a software developer and I help organizations, address complex problems. My expertise lies within back-end, data science and machine learning. I am a lifelong learner, currently working on metaverse, and enrolled in a course building an AI application with python. I love solving problems and developing bug-free software for people. I write content related to python and hot Technologies.
LinkedIn