python代码给文件批量重命名
一、引言
在日常工作和学习中,我们经常会遇到需要批量重命名文件的情况。无论是整理照片、文档还是其他类型的文件,手动一个个修改既费时又容易出错。今天,我将分享一个简单而强大的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中运行。
