Python实现文件批量重命名的实用脚本与操作指南
本文提供基于Python内置os模块的文件批量重命名脚本方案。通过配置目标路径、前后缀参数及字符替换规则,可高效处理大量文件名变更任务,同时保留原始扩展名并内置路径校验机制,适用于日常文档整理与资源归档。
脚本功能与安全前置提醒
该脚本利用Python标准库实现目录遍历与文件属性解析,核心能力包括为文件添加固定前缀或后缀、全局替换文件名中的特定字符串,以及严格分离主文件名与扩展名以防止格式损坏。在进行任何批量修改操作前,建议先复制部分样本文件至独立测试目录,确认输出结果符合预期后再对原文件执行操作,避免不可逆覆盖。
完整代码示例
import os
def batch_rename_files(folder_path, prefix="", suffix="", replace_old="", replace_new=""):
"""
批量重命名文件夹中的文件
:param folder_path: 目标文件夹路径
:param prefix: 要加的文件名前缀
:param suffix: 要加的文件名后缀
:param replace_old: 要替换的旧字符串
: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
# 统计重命名的文件数
rename_count = 0
for old_name in file_list:
# 拆分文件名和扩展名,重点避免把扩展名也改了,导致文件打不开
name, ext = os.path.splitext(old_name)
# 替换文件名里的指定字符
new_name = name.replace(replace_old, replace_new)
# 加上前缀和后缀
new_name = f"{prefix}{new_name}{suffix}{ext}"
# 拼接完整路径(必须用完整路径,否则会把文件移到当前目录)
old_path = os.path.join(folder_path, old_name)
new_path = os.path.join(folder_path, new_name)
# 避免文件名没变化时重复操作
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} 个文件")
# 这里是使用示例,改下面的参数就行!
if __name__ == "__main__":
# 第一步:替换成你的文件夹路径(Windows用r开头避免转义,Mac/Linux直接写路径)
target_folder = r"C:\Users\你的名字\Pictures\2024旅行照片"
# 第二步:设置重命名规则,按需修改
batch_rename_files(
folder_path=target_folder, # 目标文件夹
prefix="2024_云南行_", # 加前缀
replace_old="IMG", # 把"IMG"替换成
replace_new="照片" # "照片"
# suffix="_已整理", # 可选:加后缀,需要就取消注释
)
操作步骤
第1步:保存并准备执行环境
目的:建立脚本载体以便调用Python解释器。入口:操作系统终端或命令提示符。动作:新建空白文本文件,粘贴上方完整代码,另存为rename_files.py。重要参数:无。可观察的完成状态:文件保存无误,终端输入python --version返回正常版本信息。
第2步:配置目标路径与重命名规则
目的:定义数据作用域与处理逻辑。入口:代码末尾if __name__ == "__main__":区块。动作:修改target_folder为实际工作目录,根据需要填写prefix(名前增补)、suffix(名后追加)、replace_old与replace_new(字符映射)。重要参数:目标文件夹路径、前后缀字符串、替换关键字。可观察的完成状态:变量赋值完毕且代码缩进层级保持正确。
第3步:运行脚本并核对输出状态
目的:触发自动化流程并验证结果。入口:脚本所在目录命令行。动作:键入python rename_files.py并按回车执行。重要参数:无。可观察的完成状态:终端逐行打印重命名前后的对照日志,并最终显示类似“重命名完成!一共改了 X 个文件”的统计反馈。
关键机制与排错指引
- 扩展名保护逻辑:通过
os.path.splitext()将文件主体与后缀分离,仅对主体进行拼接或替换,彻底杜绝将.jpg误改为.jpg.txt的风险。 - 路径转义规范:Windows系统绝对路径建议使用原始字符串格式(如
r"D:\Work\Images"),防止反斜杠被识别为Unicode转义字符引发OSError。 - 非法字符拦截:若文件名包含
: " * ? \ /等系统保留符,底层API会拒绝重命名,请提前清理源文件或调整replace_old参数。 - 权限与占用冲突:抛出
PermissionError通常表示文件正被其他程序锁定或缺乏写入权,关闭相关软件或使用管理员权限重启终端即可解除阻断。
以上就是Python实现文件批量重命名的详细内容,更多关于Python自动化办公与脚本实操的资料请关注本站其它相关文章!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









