Python 自動化:幫 Script 加個小視窗,同事一撳即用(tkinter 入門)

之前幾篇文章,同大家寫過一堆 Python 自動化小程式:自動備份、合併 Excel、抽 OCR 文字、定時排程……好多老闆睇完都同我講同一句話:「啲 Script 真係好用,但公司同事見到嗰個黑色 Command 視窗,即刻縮沙,唔敢撳。」

問題唔係 Script 唔得,而係「介面太嚇人」。其實只要替個 Script 加一個小視窗——有輸入格、有按鈕、有結果提示——同事就會當佢係普通軟件咁用,一撳即得。今次就教大家用 Python 內置嘅 tkinter,用幾十行 code,幫自己嘅自動化程式「著件西裝」。

GUI 係咩?點解要加?

GUI(Graphical User Interface,圖形使用者介面)就係我哋平時見到嘅視窗、按鈕、輸入框。有咗佢,用家唔需要識打命令,只要撳掣就得。對公司嚟講,意義主要有兩點:第一,降低使用門檻,同事唔使學打指令;第二,統一流程,減少「入錯路徑」、「漏咗步驟」呢類人為錯誤。

第一步:唔使安裝,tkinter 跟 Python 一齊嚟

好多新手以為做圖形介面好複雜,其實 tkinter 係 Python 標準庫,裝咗 Python 就已經有,唔使 pip install。喺 Command 視窗打一句 python -c "import tkinter",冇報錯就代表可以用得。

第二步:個小工具會做啲乜?

  • 揀資料夾 —— 撳「揀資料夾」,彈出視窗選路徑,唔使再手打
  • 一撳執行 —— 撳「開始合併」,程式自動處理
  • 即時提示 —— 完成後彈出訊息,話你知合併咗幾多個檔案

示範用「將一個資料夾入面所有 .txt 合併成一份」做例子;你之後只要換走中間處理嗰段,就可以套用喺自己嘅備份、報表、OCR Script 上面。

第三步:寫程式

開一個新檔案叫 tool.py(記事本都得),貼入以下 code:

import os import glob import tkinter as tk from tkinter import filedialog, messagebox def choose_folder(): folder = filedialog.askdirectory() if folder: path_var.set(folder) def run_tool(): folder = path_var.get() if not os.path.isdir(folder): messagebox.showwarning("提示", "請先揀選一個有效嘅資料夾") return files = glob.glob(os.path.join(folder, "*.txt")) if not files: messagebox.showinfo("提示", "呢個資料夾冇 .txt 檔案") return out_path = os.path.join(folder, "合併結果.txt") with open(out_path, "w", encoding="utf-8") as out_file: for f in files: with open(f, encoding="utf-8") as in_file: print(in_file.read(), file=out_file) status_var.set("搞掂!已合併 %d 個檔案" % len(files)) messagebox.showinfo("完成", "已輸出:%s" % out_path) root = tk.Tk() root.title("檔案合併小工具") root.geometry("420x240") tk.Label(root, text="第一步:揀選要處理嘅資料夾").pack(pady=(18, 4)) path_var = tk.StringVar() tk.Entry(root, textvariable=path_var, width=46).pack() tk.Button(root, text="揀資料夾", command=choose_folder).pack(pady=6) tk.Button(root, text="開始合併", command=run_tool, bg="#E86E18", fg="white", font=("Microsoft YaHei", 12, "bold")).pack(pady=8) status_var = tk.StringVar(value="準備就緒") tk.Label(root, textvariable=status_var, fg="#444444").pack(pady=6) root.mainloop()

逐行解釋

  • import tkinter as tk —— 載入 Python 內置嘅圖形介面工具。
  • filedialog / messagebox —— 兩個現成彈窗:一個負責「揀檔案/資料夾」,一個負責「提示訊息」。
  • choose_folder() —— 撳「揀資料夾」時執行,彈出選取視窗,將揀到嘅路徑寫入輸入格。
  • run_tool() —— 核心工序:先檢查路徑同有冇檔案,再用 glob 搵晒所有 .txt,逐個讀入、合併成一份。
  • path_var / status_var —— 兩個「可變文字」變數,輸入格同狀態列綁住佢,一改個值,畫面即刻更新。
  • command=run_tool —— 撳掣就呼叫 run_tool(),呢句正正就係「一撳即用」嘅關鍵。
  • root.mainloop() —— 令視窗保持開啟;唔加呢行,視窗會一閃即消失。

第四步:執行同打包

喺 Command 視窗打 python tool.py,就會彈出視窗,試撳「揀資料夾」→「開始合併」。想再進一步,可以用 pyinstaller 打包成一個 .exe 檔,連 Python 都唔使裝,雙擊即用,仲可以換埋圖示,同事完全唔覺佢係「寫出嚟」嘅。

總結

Python 教學:一個好用嘅自動化 Script,唔止要跑得啱,仲要畀同事敢用。用 tkinter 幾十行 code 包一層小視窗,就將「命令列」變成「一撳即用」嘅公司工具,門檻大減、出錯機會亦跟住跌。下次寫完 Script,不妨花多十分鐘加個介面——你會發現,同事由「唔敢用」變成「日日用」,先真正慳到時間。