一、引言
在日常工作和学习中,我们经常会遇到需要批量重命名文件的情况。无论是整理照片、文档还是其他类型的文件,手动一个个修改既费时又容易出错。今天,我将分享一个简单而强大的python脚本,帮助你轻松实现文件的批量重命名。
二、脚本功能概述
这个python脚本能够:
- 扫描指定文件夹中的所有图片文件
 - 按照文件名中的数字顺序进行排序
 - 从1开始重新编号并重命名所有文件
 - 支持多种图片格式(jpg、jpeg、png)
 
三、代码
import os
 
# 图片所在的绝对路径(按照自己文件所在的路径填写,注意路径前加r避免转义问题)
img_folder = r"d:\python\image"
 
# 获取文件夹中所有图片文件(支持.jpg、.jpeg、.png格式,可根据需要增减,有其他格式的可以自行增加后缀)
img_formats = ('.jpg', '.jpeg', '.png')  # tuple格式,用于判断文件后缀
img_files = [
    f for f in os.listdir(img_folder)
    if f.lower().endswith(img_formats)  # 忽略大小写(如.jpg也会被处理)
]
 
# 如果没有找到图片,直接提示并退出
if not img_files:
    print("错误:在该路径下未找到任何图片文件!")
    exit()
 
 
# 定义函数:从文件名中提取数字(用于排序)
def get_number_from_filename(filename):
    # 例如:"abc123.jpg" 提取123,"45.png"提取45,纯数字文件名直接提取
    import re
    # 用正则匹配文件名中的数字(连续数字)
    num_match = re.search(r'\d+', filename)
    if num_match:
        return int(num_match.group())  # 返回提取到的数字
    else:
        # 如果文件名中没有数字,按原文件名排序(避免报错)
        return 0
 
 
# 按文件名中的数字从小到大排序(确保顺序正确)
img_files_sorted = sorted(img_files, key=get_number_from_filename)
 
# 重命名:从1开始编号,到文件总数结束
for i, old_name in enumerate(img_files_sorted, start=1):
    # 构建旧文件的完整路径
    old_path = os.path.join(img_folder, old_name)
    # 获取原文件的后缀(如.jpg、.png)
    file_ext = os.path.splitext(old_name)[1]
    # 新文件名:序号 + 原后缀(如1.jpg、2.png,可自行修改)
    new_name = f"{i}{file_ext}"
    new_path = os.path.join(img_folder, new_name)
 
    # 执行重命名
    os.rename(old_path, new_path)
    print(f"已重命名:{old_name} -> {new_name}")
 
print(f"\n全部完成!共重命名 {len(img_files_sorted)} 个图片文件")四、使用步骤详解
1. 准备工作
首先,确保你的计算机上安装了python环境。这个脚本不需要安装额外的第三方库,只使用了python内置的os和re模块。
2. 修改文件夹路径
将代码中的img_folder变量值修改为你需要处理的文件夹路径:
img_folder = r"你的文件夹路径"
注意路径前的r是为了避免转义问题,例如\n会被识别为换行符,而r"\n"会被识别为两个字符\和n。
3. 自定义文件格式
如果你的文件不是常见的图片格式,可以修改img_formats变量来添加或删除支持的文件格式
img_formats = ('.jpg', '.jpeg', '.png', '.gif', '.bmp')  # 添加更多格式4. 运行脚本
保存脚本为.py文件(如rename_files.py),然后在命令行中运行:
python rename_files.py
或者直接在python ide中运行。
到此这篇关于使用python脚本轻松实现文件的批量重命名的文章就介绍到这了,更多相关python文件批量重命名内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
            
                                            
                                            
                                            
                                            
                                            
发表评论