點擊按鈕開啟多個檔案
這篇教學會延伸「點擊按鈕開啟檔案」文章,同樣會使用 tkinter 的 Button 按鈕,點擊按鈕後,進行開啟「多個」檔案的動作,並在開啟檔案後,透過 Text 多行輸入框顯示每個檔案的路徑。
快速導覽:
因為 Google Colab 不支援 tkinter,所以請使用本機環境 ( 參考:使用 Python 虛擬環境 ) 或使用 Anaconda Jupyter 進行實作 ( 參考:使用 Anaconda )。
點擊按鈕開啟多個檔案
載入 tkinter 函式庫的 filedialog 模組,使用 filedialog.askopenfilenames() 就可以開啟多個檔案 ( 開啟單一檔案的方法為 filedialog.askopenfilename() 沒有加上 s ),,下方的程式碼在視窗裡放入一個按鈕,點擊按鈕時執行 show 函式,選擇檔案後印出檔案路徑。
import tkinter as tk
from tkinter import filedialog
root = tk.Tk()
root.title('oxxo.studio')
root.geometry('200x200')
def show():
files = filedialog.askopenfilenames() # 點擊按鈕時選擇多個檔案
print(files) # 以串列方式印出檔案路徑
btn = tk.Button(root,
text='開啟檔案',
font=('Arial',20,'bold'),
command=show
)
btn.pack()
root.mainloop()
使用 Text 多行輸入框顯示檔案路徑
參考「os 常用方法」文章,先將工作目錄移動到根目錄 ( 因為開啟的檔案路徑是以根目錄出發的絕對路徑 ),接著參考「Text 多行輸入框」文章,在選擇並開啟檔案後,搭配 Text 多行輸入框顯示這些檔案的路徑。
import os
os.chdir('/') # 移動路徑到根目錄
import tkinter as tk
from tkinter import Variable, filedialog
root = tk.Tk()
root.title('oxxo.studio')
root.geometry('300x200')
def show():
files = filedialog.askopenfilenames()
for i, e in enumerate(files): # 使用 enumerate 將串列變成帶有索引值的字典
text.insert('end', f'{e}') # Text 從後方加入內容
if i != len(files):
text.insert('end', '\n') # 如果是不是最後一行,都加入換行符號
btn_open = tk.Button(root,
text='開啟檔案',
font=('Arial',20,'bold'),
command=show
)
btn_open.pack()
text = tk.Text(root, height=8) # 加入 Text
text.pack()
root.mainloop()
意見回饋
如果有任何建議或問題,可傳送「意見表單」給我,謝謝~