使用Python腳本批量搞定所有文件重命名
日常工作中你是不是也遇到過這種場景:整理旅行照片時,一堆 “IMG_001.jpg、IMG_002.jpg” 看得眼花繚亂;處理工作文檔時,需要給幾十個文件統(tǒng)一加項(xiàng)目前綴;想把文件名里的錯別字批量改掉,手動改到崩潰……
其實(shí)根本不用這么費(fèi)勁,今天就教你寫一個超實(shí)用的Python小腳本,30行代碼實(shí)現(xiàn)文件批量重命名,支持加前綴/后綴、批量替換字符,新手也能輕松上手,徹底解放雙手!
先說說這個腳本能干嘛?
這個腳本核心解決“批量處理文件名”的問題,比如:
- 給 100 張旅行照片統(tǒng)一加上“2024_云南行_”前綴
- 把所有文件里的“初稿”替換成“終版”
- 給文檔批量加“_部門審核”后綴
- 組合使用:加前綴+替換關(guān)鍵詞,一次搞定
全程不用復(fù)雜操作,改個文件夾路徑就能用,還加了防錯校驗(yàn),不用擔(dān)心改壞文件。
直接上代碼(可復(fù)制即用)
先把完整代碼貼出來,我會逐行解釋關(guān)鍵部分,放心抄作業(yè)~
import os
def batch_rename_files(folder_path, prefix="", suffix="", replace_old="", replace_new=""):
"""
批量重命名文件夾中的文件
:param folder_path: 目標(biāo)文件夾路徑(比如C:\照片\旅行)
:param prefix: 要加的文件名前綴
:param suffix: 要加的文件名后綴
:param replace_old: 要替換的舊字符串(比如"IMG")
:param replace_new: 替換后的新字符串(比如"旅行")
"""
# 先檢查文件夾是否存在,避免輸錯路徑
if not os.path.isdir(folder_path):
print(f"? 錯誤:文件夾 {folder_path} 不存在!")
return
# 只獲取文件,跳過子文件夾(避免誤改文件夾名)
file_list = [f for f in os.listdir(folder_path) if os.path.isfile(os.path.join(folder_path, f))]
if not file_list:
print("?? 文件夾里沒有可重命名的文件!")
return
# 統(tǒng)計重命名的文件數(shù)
rename_count = 0
for old_name in file_list:
# 拆分文件名和擴(kuò)展名(比如"IMG_001.jpg"拆成"IMG_001"和".jpg")
# 重點(diǎn):避免把擴(kuò)展名也改了,導(dǎo)致文件打不開
name, ext = os.path.splitext(old_name)
# 替換文件名里的指定字符
new_name = name.replace(replace_old, replace_new)
# 加上前綴和后綴
new_name = f"{prefix}{new_name}{suffix}{ext}"
# 拼接完整路徑(必須用完整路徑,否則會把文件移到當(dāng)前目錄)
old_path = os.path.join(folder_path, old_name)
new_path = os.path.join(folder_path, new_name)
# 避免文件名沒變化時重復(fù)操作
if old_path != new_path:
os.rename(old_path, new_path)
rename_count += 1
print(f"? 已重命名:{old_name} -> {new_name}")
print(f"\n?? 重命名完成!一共改了 {rename_count} 個文件")
# 這里是使用示例,改下面的參數(shù)就行!
if __name__ == "__main__":
# 第一步:替換成你的文件夾路徑(Windows用r開頭避免轉(zhuǎn)義,Mac/Linux直接寫路徑)
target_folder = r"C:\Users\你的名字\Pictures\2024旅行照片"
# 第二步:設(shè)置重命名規(guī)則,按需修改
batch_rename_files(
folder_path=target_folder, # 目標(biāo)文件夾
prefix="2024_云南行_", # 加前綴
replace_old="IMG", # 把"IMG"替換成
replace_new="照片" # "照片"
# suffix="_已整理", # 可選:加后綴,需要就取消注釋
)
關(guān)鍵代碼解釋(新手也能懂)
不用怕看不懂代碼,核心邏輯就這幾點(diǎn):
1. 先做 “安全校驗(yàn)”
腳本開頭先檢查文件夾是否存在、里面有沒有文件,避免因?yàn)檩斿e路徑白忙活,也防止新手誤操作。
2. 拆分文件名和擴(kuò)展名(重點(diǎn)?。?/h3>
用os.path.splitext()把文件名和后綴分開處理,比如 “報告.docx” 拆成 “報告” 和 “.docx”,只改前面的文件名,保證文件格式不會被改亂(比如不會把.jpg 改成.jpg.txt)。
3. 靈活的重命名規(guī)則
prefix:給文件名加前綴,比如給所有照片加 “2024_云南行_”suffix:給文件名加后綴,比如加 “_財務(wù)部”replace_old/replace_new:批量替換字符,比如把 “初稿” 改成 “終版”
這幾個參數(shù)可以單獨(dú)用,也可以組合用,比如既加前綴又替換關(guān)鍵詞。
4. 避免重復(fù)操作
判斷新舊文件名是否一樣,不一樣才執(zhí)行重命名,避免無意義的操作,也防止報錯。
怎么用?超簡單 3 步
- 復(fù)制代碼:把上面的代碼保存成
rename_files.py(隨便起個名字,后綴是.py 就行); - 改參數(shù):找到代碼最下面的
target_folder,替換成你要處理的文件夾路徑,再根據(jù)需求改prefix/replace_old這些參數(shù); - 運(yùn)行腳本:打開命令行,進(jìn)入腳本所在目錄,輸入
python rename_files.py,回車就能看到重命名進(jìn)度。
舉個實(shí)際例子
比如我有一堆旅行照片,文件名是:
IMG_1234.jpg IMG_1235.jpg IMG_1236.jpg
我想改成:
2024_云南行_照片1234.jpg 2024_云南行_照片1235.jpg 2024_云南行_照片1236.jpg
只需要把參數(shù)改成這樣:
batch_rename_files(
folder_path=r"C:\Users\XXX\Pictures\云南行",
prefix="2024_云南行_",
replace_old="IMG_",
replace_new="照片"
)
運(yùn)行腳本,幾秒鐘就搞定,比手動改快100倍!
小提醒(避坑指南)
- 備份文件:第一次用建議先復(fù)制一份文件到測試文件夾,確認(rèn)沒問題再處理原文件;
- 路徑格式:Windows 路徑用
r"路徑"(比如r"C:\照片"),避免反斜杠被轉(zhuǎn)義;Mac/Linux 直接寫/Users/XXX/照片; - 特殊字符:文件名別加冒號、星號這些非法字符,否則會報錯;
- 權(quán)限問題:如果提示 “權(quán)限不足”,右鍵以管理員身份運(yùn)行腳本。
最后說兩句
這個小腳本雖然簡單,但真的能解決日常工作中的大 麻煩。其實(shí) Python 的魅力就在于此 —— 不用寫復(fù)雜的代碼,就能快速解決實(shí)際問題。
如果你還有其他批量處理文件的需求(比如按時間重命名、按類型分類),可以在這個腳本基礎(chǔ)上改,比如加個按序號命名的功能,或者篩選特定格式的文件(只改.jpg,不改.png)。
以上就是使用Python腳本批量搞定所有文件重命名的詳細(xì)內(nèi)容,更多關(guān)于Python實(shí)現(xiàn)文件重命名的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Python中用pycurl監(jiān)控http響應(yīng)時間腳本分享
這篇文章主要介紹了Python中用pycurl監(jiān)控http響應(yīng)時間腳本分享,本文腳本實(shí)現(xiàn)監(jiān)控http相應(yīng)碼,響應(yīng)大小,建立連接時間,準(zhǔn)備傳輸時間,傳輸?shù)谝粋€字節(jié)時間,完成時間,需要的朋友可以參考下2015-02-02
Python結(jié)合PyQt和Flask實(shí)現(xiàn)桌面端一鍵啟動/關(guān)閉Web服務(wù)的應(yīng)用
本文將以一個完整示例演示如何結(jié)合 PyQt 與 Flask,輕松打造一個桌面應(yīng)用,實(shí)現(xiàn)對本地 Web 服務(wù)的一鍵啟動與停止,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下2025-12-12
Python計算雙重差分模型DID及其對應(yīng)P值使用詳解
這篇文章主要介紹了Python計算DID及其對應(yīng)P值的使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪2021-09-09
PyCharm Anaconda配置PyQt5開發(fā)環(huán)境及創(chuàng)建項(xiàng)目的教程詳解
這篇文章主要介紹了PyCharm Anaconda配置PyQt5開發(fā)環(huán)境及創(chuàng)建項(xiàng)目的方法,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-03-03
Python中filter與lambda的結(jié)合使用詳解
今天小編就為大家分享一篇Python中filter與lambda的結(jié)合使用詳解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2019-12-12

