Python实现文件批量重命名的实用脚本与操作指南

季宁
季宁
发布时间:2026-10-10 | 3人浏览过
原创

本文提供基于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自动化办公与脚本实操的资料请关注本站其它相关文章!

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表