当前位置: 代码网 > it编程>前端脚本>Python > 使用Python脚本批量搞定所有文件重命名

使用Python脚本批量搞定所有文件重命名

2026年01月23日 Python 我要评论
日常工作中你是不是也遇到过这种场景:整理旅行照片时,一堆 “img_001.jpg、img_002.jpg” 看得眼花缭乱;处理工作文档时,需要给几十个文件统一加项目前缀;想把

日常工作中你是不是也遇到过这种场景:整理旅行照片时,一堆 “img_001.jpg、img_002.jpg” 看得眼花缭乱;处理工作文档时,需要给几十个文件统一加项目前缀;想把文件名里的错别字批量改掉,手动改到崩溃……

其实根本不用这么费劲,今天就教你写一个超实用的python小脚本,30行代码实现文件批量重命名,支持加前缀/后缀、批量替换字符,新手也能轻松上手,彻底解放双手!

先说说这个脚本能干嘛?

这个脚本核心解决“批量处理文件名”的问题,比如:

  • 给 100 张旅行照片统一加上“2024_云南行_”前缀
  • 把所有文件里的“初稿”替换成“终版”
  • 给文档批量加“_部门审核”后缀
  • 组合使用:加前缀+替换关键词,一次搞定

全程不用复杂操作,改个文件夹路径就能用,还加了防错校验,不用担心改坏文件。

直接上代码(可复制即用)

先把完整代码贴出来,我会逐行解释关键部分,放心抄作业~

import os

def batch_rename_files(folder_path, prefix="", suffix="", replace_old="", replace_new=""):
    """
    批量重命名文件夹中的文件
    :param folder_path: 目标文件夹路径(比如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
    
    # 统计重命名的文件数
    rename_count = 0
    for old_name in file_list:
        # 拆分文件名和扩展名(比如"img_001.jpg"拆成"img_001"和".jpg")
        # 重点:避免把扩展名也改了,导致文件打不开
        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. 先做 “安全校验”

脚本开头先检查文件夹是否存在、里面有没有文件,避免因为输错路径白忙活,也防止新手误操作。

2. 拆分文件名和扩展名(重点!)

os.path.splitext()把文件名和后缀分开处理,比如 “报告.docx” 拆成 “报告” 和 “.docx”,只改前面的文件名,保证文件格式不会被改乱(比如不会把.jpg 改成.jpg.txt)。

3. 灵活的重命名规则

  • prefix:给文件名加前缀,比如给所有照片加 “2024_云南行_”
  • suffix:给文件名加后缀,比如加 “_财务部”
  • replace_old/replace_new:批量替换字符,比如把 “初稿” 改成 “终版”

这几个参数可以单独用,也可以组合用,比如既加前缀又替换关键词。

4. 避免重复操作

判断新旧文件名是否一样,不一样才执行重命名,避免无意义的操作,也防止报错。

怎么用?超简单 3 步

  1. 复制代码:把上面的代码保存成rename_files.py(随便起个名字,后缀是.py 就行);
  2. 改参数:找到代码最下面的target_folder,替换成你要处理的文件夹路径,再根据需求改prefix/replace_old这些参数;
  3. 运行脚本:打开命令行,进入脚本所在目录,输入python rename_files.py,回车就能看到重命名进度。

举个实际例子

比如我有一堆旅行照片,文件名是:

img_1234.jpg
img_1235.jpg
img_1236.jpg

我想改成:

2024_云南行_照片1234.jpg
2024_云南行_照片1235.jpg
2024_云南行_照片1236.jpg

只需要把参数改成这样:

batch_rename_files(
    folder_path=r"c:\users\xxx\pictures\云南行",
    prefix="2024_云南行_",
    replace_old="img_",
    replace_new="照片"
)

运行脚本,几秒钟就搞定,比手动改快100倍!

小提醒(避坑指南)

  1. 备份文件:第一次用建议先复制一份文件到测试文件夹,确认没问题再处理原文件;
  2. 路径格式:windows 路径用r"路径"(比如r"c:\照片"),避免反斜杠被转义;mac/linux 直接写/users/xxx/照片
  3. 特殊字符:文件名别加冒号、星号这些非法字符,否则会报错;
  4. 权限问题:如果提示 “权限不足”,右键以管理员身份运行脚本。

最后说两句

这个小脚本虽然简单,但真的能解决日常工作中的大 麻烦。其实 python 的魅力就在于此 —— 不用写复杂的代码,就能快速解决实际问题。

如果你还有其他批量处理文件的需求(比如按时间重命名、按类型分类),可以在这个脚本基础上改,比如加个按序号命名的功能,或者筛选特定格式的文件(只改.jpg,不改.png)。

以上就是使用python脚本批量搞定所有文件重命名的详细内容,更多关于python实现文件重命名的资料请关注代码网其它相关文章!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com