手機影相、掃描文件、同事傳嘅檔案,日積月累就變成一堆 IMG_2381.jpg、未命名(3).pdf、掃描_20260115_144732.png。想逐個改名,一千個檔案你唔會想人手撳。呢篇教你用 Python 十零行 code,一個指令就將成個資料夾嘅檔名一次過執靚 —— 加前綴、順序編號、刪走亂碼文字,全部自動。
有咩場景用到?
改名唔止係為咗好睇,仲幫你慳時間同減少出錯:
- 相片 —— 旅行相由 IMG_2381.jpg 變成 東京_001.jpg,一眼搵到
- 發票 / 合約 —— 掃描檔統一加日期前綴 20260909_發票_xxx,排序自然正確
- 報表 —— 月結檔名加「_final」,唔會撈亂舊版同新版
先認識兩個工具
成個程式只靠兩個 Python 內置模組:
- glob —— 用萬用字元(wildcard)搵出符合條件嘅檔案,例如 *.jpg 就係「所有 jpg」
- os.rename —— 改檔名嘅核心指令,新舊名一換就完成
兩者都係跟機內置,唔使 pip 安裝任何嘢。
完整程式
開一個新檔案 rename.py,貼入以下 code:
逐行解釋
- sorted(glob.glob(...)) —— 搵出資料夾入面所有 .jpg,並按字母排序,確保編號順序穩定。
- os.path.split(path) —— 將路徑拆開做(資料夾,檔名)兩部分,我哋只改檔名部分。
- os.path.splitext(old_name)[1] —— 抽出副檔名(例如 .jpg),改完名要原封不動加返上去。
- f"{prefix}{i:03d}{ext}" —— 砌新名。:03d 係「三位數、前面補零」,所以第 7 個檔會係 旅行_007.jpg。
- DRY_RUN —— 安全掣。初初必定設 True,只列預覽唔會真改,睇啱先轉 False。
三個常用改名規則
改 new_name 嗰行就等於換咗改名規則,三個最常用:
規則一:順序編號(上面已示範)
旅行_001.jpg、旅行_002.jpg… 最適合相片同批次文件。
規則二:刪走固定字眼
例如 IMG_2381.jpg 會變成 2381.jpg。
規則三:加前綴 / 後綴
執行
喺命令提示字元切換去 rename.py 所在位置,打:
記得先跑一次 DRY_RUN = True 嘅預覽,確認無誤先轉 False 正式執行。十秒內,成個資料夾就執靚晒。
撞名要小心
如果兩個唔同嘅檔改完之後名一樣,os.rename 會直接覆蓋舊檔,原本嘅資料就咁消失。所以正式執行前,加一個「跳過撞名」嘅保護:
呢段 code 放喺 os.rename 前面,見到同名就 skip,安全好多。
進階:連子資料夾一齊改
上面只改最表層嘅檔案。如果你想連埋入面所有子資料夾,用 os.walk 取代 glob:
os.walk 會自動逐層行晒所有子資料夾,適合成個專案資料夾一次過執靚。
安全提示:先備份
改名係「不可逆」嘅操作,最穩陣係先 copy 一個細資料夾做測試,確認效果啱先攞去正式用。甚至用 shutil.copytree 成個資料夾備份一次:
萬一改錯咗名,即刻由備份還原,零損失。
總結
今篇Python 教學總結: 批次改名係「性價比」最高嘅自動化入門 —— 唔使裝任何套件,十零行 code 就解決一個日日都要面對嘅煩惱。熟咗之後,你可以用同一套路去批次改 PDF、批次壓縮、甚至批次加水印。自動化嘅第一步,通常就係由呢啲細位開始。