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