如何使用Python执行批量重命名实现文件管理自动化

来源:图像处理网作者:比特币程序员头衔:程序员
导读:本期聚焦于小伙伴创作的《如何使用Python执行批量重命名实现文件管理自动化》,敬请观看详情,探索知识的价值。以下视频、文章将为您系统阐述其核心内容与价值。如果您觉得《如何使用Python执行批量重命名实现文件管理自动化》有用,将其分享出去将是对创作者最好的鼓励。

在文件管理场景中,批量重命名是高频需求,比如整理拍摄的照片、规范项目文档命名、处理下载的批量素材等,手动操作不仅效率低还容易出错,使用Python可以快速实现自动化处理,适配多种重命名规则。

Python批量重命名的核心依赖

Python实现批量重命名主要依赖内置的os模块,该模块提供了操作文件系统的相关方法,其中os.listdir()可以获取指定目录下的所有文件名称,os.rename()可以执行单个文件的重命名操作,二者结合就能完成批量处理。

基础方法说明

  • os.listdir(path):传入目标文件夹路径,返回该路径下所有文件和文件夹的名称列表,默认不包含路径前缀
  • os.rename(src, dst):传入原文件路径src和新文件路径dst,执行重命名操作,若新路径和原路径在同一目录,仅修改文件名即可
  • os.path.join(path, name):拼接文件夹路径和文件名,避免不同系统路径分隔符不兼容的问题

常见批量重命名场景实现

场景1:按序号批量重命名文件

比如将某个文件夹下的所有图片统一命名为image_001.jpgimage_002.png这类格式,代码如下:

import os

# 目标文件夹路径
folder_path = "./test_files"
# 获取文件夹下所有文件名
file_names = os.listdir(folder_path)
# 过滤掉文件夹,只处理文件
files = [f for f in file_names if os.path.isfile(os.path.join(folder_path, f))]
# 按文件名排序,保证重命名顺序固定
files.sort()
# 序号起始值
index = 1
for file in files:
    # 获取文件后缀
    file_ext = os.path.splitext(file)[1]
    # 拼接新文件名,序号补零到3位
    new_name = f"image_{index:03d}{file_ext}"
    # 拼接原文件完整路径和新文件完整路径
    old_path = os.path.join(folder_path, file)
    new_path = os.path.join(folder_path, new_name)
    # 执行重命名
    os.rename(old_path, new_path)
    print(f"已将 {file} 重命名为 {new_name}")
    index += 1

场景2:替换文件名中的特定字符

如果文件名中包含需要替换的旧字符,比如将文件名里的old_全部替换成new_,代码如下:

import os

folder_path = "./test_files"
old_str = "old_"
new_str = "new_"

for file in os.listdir(folder_path):
    file_path = os.path.join(folder_path, file)
    # 只处理文件,跳过文件夹
    if os.path.isfile(file_path):
        # 判断文件名是否包含需要替换的字符
        if old_str in file:
            # 生成新文件名
            new_file = file.replace(old_str, new_str)
            new_path = os.path.join(folder_path, new_file)
            os.rename(file_path, new_path)
            print(f"已将 {file} 重命名为 {new_file}")

场景3:给所有文件添加统一前缀或后缀

比如给所有文档类文件添加2024_前缀,或者给图片添加_backup后缀,代码如下:

import os

folder_path = "./test_files"
# 要添加的前缀
prefix = "2024_"
# 要添加的后缀,注意不要包含后缀名前的点
suffix = "_backup"

for file in os.listdir(folder_path):
    file_path = os.path.join(folder_path, file)
    if os.path.isfile(file_path):
        # 分离文件名和后缀
        file_name, file_ext = os.path.splitext(file)
        # 添加前缀和后缀,再拼接原后缀
        new_file = f"{prefix}{file_name}{suffix}{file_ext}"
        new_path = os.path.join(folder_path, new_file)
        os.rename(file_path, new_path)
        print(f"已将 {file} 重命名为 {new_file}")

注意事项

  • 执行重命名操作前,建议先备份原文件,避免误操作导致文件丢失
  • 如果目标文件夹下存在同名文件,os.rename()会直接覆盖原有文件,执行前可以先判断新文件名是否已存在
  • 处理文件名时如果需要兼容中文,保证Python文件编码为UTF-8即可,无需额外处理
  • 如果要处理子文件夹下的文件,可以结合os.walk()方法递归遍历所有层级的文件

递归处理子文件夹的扩展方法

如果需要处理目标文件夹下所有子目录中的文件,可以使用os.walk()遍历,代码如下:

import os

root_path = "./test_root"

for parent, dirs, files in os.walk(root_path):
    for file in files:
        file_path = os.path.join(parent, file)
        # 这里可以添加任意重命名逻辑,比如替换字符
        if "temp" in file:
            new_file = file.replace("temp", "final")
            new_path = os.path.join(parent, new_file)
            os.rename(file_path, new_path)
            print(f"已将 {file_path} 重命名为 {new_path}")

Python批量重命名文件管理自动化os模块修改时间:2026-06-22 23:51:56

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。