使用Python腳本批量搞定所有文件重命名
日常工作中你是不是也遇到過(guò)這種場(chǎng)景:整理旅行照片時(shí),一堆 “IMG_001.jpg、IMG_002.jpg” 看得眼花繚亂;處理工作文檔時(shí),需要給幾十個(gè)文件統(tǒng)一加項(xiàng)目前綴;想把文件名里的錯(cuò)別字批量改掉,手動(dòng)改到崩潰……
其實(shí)根本不用這么費(fèi)勁,今天就教你寫(xiě)一個(gè)超實(shí)用的Python小腳本,30行代碼實(shí)現(xiàn)文件批量重命名,支持加前綴/后綴、批量替換字符,新手也能輕松上手,徹底解放雙手!
先說(shuō)說(shuō)這個(gè)腳本能干嘛?
這個(gè)腳本核心解決“批量處理文件名”的問(wèn)題,比如:
- 給 100 張旅行照片統(tǒng)一加上“2024_云南行_”前綴
- 把所有文件里的“初稿”替換成“終版”
- 給文檔批量加“_部門(mén)審核”后綴
- 組合使用:加前綴+替換關(guān)鍵詞,一次搞定
全程不用復(fù)雜操作,改個(gè)文件夾路徑就能用,還加了防錯(cuò)校驗(yàn),不用擔(dān)心改壞文件。
直接上代碼(可復(fù)制即用)
先把完整代碼貼出來(lái),我會(huì)逐行解釋關(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: 替換后的新字符串(比如"旅行")
"""
# 先檢查文件夾是否存在,避免輸錯(cuò)路徑
if not os.path.isdir(folder_path):
print(f"? 錯(cuò)誤:文件夾 {folder_path} 不存在!")
return
# 只獲取文件,跳過(guò)子文件夾(避免誤改文件夾名)
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("?? 文件夾里沒(méi)有可重命名的文件!")
return
# 統(tǒng)計(jì)重命名的文件數(shù)
rename_count = 0
for old_name in file_list:
# 拆分文件名和擴(kuò)展名(比如"IMG_001.jpg"拆成"IMG_001"和".jpg")
# 重點(diǎn):避免把擴(kuò)展名也改了,導(dǎo)致文件打不開(kāi)
name, ext = os.path.splitext(old_name)
# 替換文件名里的指定字符
new_name = name.replace(replace_old, replace_new)
# 加上前綴和后綴
new_name = f"{prefix}{new_name}{suffix}{ext}"
# 拼接完整路徑(必須用完整路徑,否則會(huì)把文件移到當(dāng)前目錄)
old_path = os.path.join(folder_path, old_name)
new_path = os.path.join(folder_path, new_name)
# 避免文件名沒(méi)變化時(shí)重復(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} 個(gè)文件")
# 這里是使用示例,改下面的參數(shù)就行!
if __name__ == "__main__":
# 第一步:替換成你的文件夾路徑(Windows用r開(kāi)頭避免轉(zhuǎn)義,Mac/Linux直接寫(xiě)路徑)
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)鍵代碼解釋?zhuān)ㄐ率忠材芏?/h2>
不用怕看不懂代碼,核心邏輯就這幾點(diǎn):
1. 先做 “安全校驗(yàn)”
腳本開(kāi)頭先檢查文件夾是否存在、里面有沒(méi)有文件,避免因?yàn)檩斿e(cuò)路徑白忙活,也防止新手誤操作。
2. 拆分文件名和擴(kuò)展名(重點(diǎn)?。?/h3>
用os.path.splitext()把文件名和后綴分開(kāi)處理,比如 “報(bào)告.docx” 拆成 “報(bào)告” 和 “.docx”,只改前面的文件名,保證文件格式不會(huì)被改亂(比如不會(huì)把.jpg 改成.jpg.txt)。
3. 靈活的重命名規(guī)則
prefix:給文件名加前綴,比如給所有照片加 “2024_云南行_”suffix:給文件名加后綴,比如加 “_財(cái)務(wù)部”replace_old/replace_new:批量替換字符,比如把 “初稿” 改成 “終版”
這幾個(gè)參數(shù)可以單獨(dú)用,也可以組合用,比如既加前綴又替換關(guān)鍵詞。
4. 避免重復(fù)操作
判斷新舊文件名是否一樣,不一樣才執(zhí)行重命名,避免無(wú)意義的操作,也防止報(bào)錯(cuò)。
怎么用?超簡(jiǎn)單 3 步
- 復(fù)制代碼:把上面的代碼保存成
rename_files.py(隨便起個(gè)名字,后綴是.py 就行); - 改參數(shù):找到代碼最下面的
target_folder,替換成你要處理的文件夾路徑,再根據(jù)需求改prefix/replace_old這些參數(shù); - 運(yùn)行腳本:打開(kāi)命令行,進(jìn)入腳本所在目錄,輸入
python rename_files.py,回車(chē)就能看到重命名進(jìn)度。
舉個(gè)實(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)行腳本,幾秒鐘就搞定,比手動(dòng)改快100倍!
小提醒(避坑指南)
- 備份文件:第一次用建議先復(fù)制一份文件到測(cè)試文件夾,確認(rèn)沒(méi)問(wèn)題再處理原文件;
- 路徑格式:Windows 路徑用
r"路徑"(比如r"C:\照片"),避免反斜杠被轉(zhuǎn)義;Mac/Linux 直接寫(xiě)/Users/XXX/照片; - 特殊字符:文件名別加冒號(hào)、星號(hào)這些非法字符,否則會(huì)報(bào)錯(cuò);
- 權(quán)限問(wèn)題:如果提示 “權(quán)限不足”,右鍵以管理員身份運(yùn)行腳本。
最后說(shuō)兩句
這個(gè)小腳本雖然簡(jiǎn)單,但真的能解決日常工作中的大 麻煩。其實(shí) Python 的魅力就在于此 —— 不用寫(xiě)復(fù)雜的代碼,就能快速解決實(shí)際問(wèn)題。
如果你還有其他批量處理文件的需求(比如按時(shí)間重命名、按類(lèi)型分類(lèi)),可以在這個(gè)腳本基礎(chǔ)上改,比如加個(gè)按序號(hào)命名的功能,或者篩選特定格式的文件(只改.jpg,不改.png)。
以上就是使用Python腳本批量搞定所有文件重命名的詳細(xì)內(nèi)容,更多關(guān)于Python實(shí)現(xiàn)文件重命名的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
python根據(jù)unicode判斷語(yǔ)言類(lèi)型實(shí)例代碼
這篇文章主要介紹了python根據(jù)unicode判斷語(yǔ)言類(lèi)型實(shí)例代碼,具有一定借鑒價(jià)值,需要的朋友可以參考下2018-01-01
Python實(shí)現(xiàn)兩款計(jì)算器功能示例
這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)兩款計(jì)算器功能示例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-12-12
使用Python和PaddleOCR實(shí)現(xiàn)圖文識(shí)別的代碼和步驟
在當(dāng)今數(shù)字化時(shí)代,圖文識(shí)別技術(shù)的應(yīng)用越來(lái)越廣泛,如文檔數(shù)字化、信息提取等,PaddleOCR 是百度開(kāi)源的一款強(qiáng)大的 OCR 工具包,它集成了多種先進(jìn)的算法和模型,本文將詳細(xì)介紹如何使用 PaddleOCR 和 Python 實(shí)現(xiàn)圖文識(shí)別,需要的朋友可以參考下2025-05-05
python多線程請(qǐng)求帶參數(shù)的多個(gè)接口問(wèn)題
這篇文章主要介紹了python多線程請(qǐng)求帶參數(shù)的多個(gè)接口問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-03-03
Python輕松將腳本打包成EXE應(yīng)用的6種方法實(shí)現(xiàn)與對(duì)比
這篇文章主要為大家詳細(xì)介紹了Python輕松將腳本打包成EXE應(yīng)用的6種方法實(shí)現(xiàn)并進(jìn)行簡(jiǎn)單的對(duì)比,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下2026-02-02
深度學(xué)習(xí)環(huán)境搭建anaconda+pycharm+pytorch的方法步驟
本文主要介紹了深度學(xué)習(xí)環(huán)境搭建anaconda+pycharm+pytorch的方法步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09

