Python 批量修改文件名称:一个简单实用的自动化脚本
平时处理大量文件时,经常会遇到需要批量修改文件名称的情况。
例如:
- 下载了一批图片,需要统一增加前缀;
- 导出的数据文件名称不规范;
- 项目文件需要按照规则重新命名。
如果文件数量比较少,可以手动修改。
但是几十个甚至几百个文件,一个个操作效率非常低。
今天记录一个使用 Python 实现批量重命名的小工具。
一、准备测试目录
假设目录:
images/ 001.jpg 002.jpg 003.jpg希望修改成:
photo_001.jpg photo_002.jpg photo_003.jpg二、Python 实现批量重命名
代码如下:
importos folder="./images"prefix="photo_"files=os.listdir(folder)forfilenameinfiles:old_path=os.path.join(folder,filename)ifos.path.isfile(old_path):name,ext=os.path.splitext(filename)new_name=prefix+name+ext new_path=os.path.join(folder,new_name)os.rename(old_path,new_path)print(filename,"->",new_name)运行后:
001.jpg -> photo_001.jpg 002.jpg -> photo_002.jpg 003.jpg -> photo_003.jpg三、代码解析
获取目录文件
os.listdir(folder)可以返回目录中的所有文件和文件夹。
例如:
["001.jpg","002.jpg"]分离文件名和扩展名
使用:
os.path.splitext()例如:
photo.jpg会拆分为:
photo .jpg这样修改名称时不会影响文件格式。
四、增加文件编号功能
如果希望按照顺序重新编号:
importos folder="./images"files=os.listdir(folder)forindex,filenameinenumerate(files,1):ext=os.path.splitext(filename)[1]new_name=f"image_{index}{ext}"os.rename(os.path.join(folder,filename),os.path.join(folder,new_name))效果:
image_1.jpg image_2.jpg image_3.jpg五、避免误操作
批量修改文件名称前,建议先打印结果:
print(old_name,"=>",new_name)确认没有问题后再执行:
os.rename()另外建议:
- 先备份目录;
- 不直接处理重要文件;
- 测试几个文件后再批量运行。
六、结合服务器自动化
这个脚本也可以用于服务器维护。
例如:
每天自动整理:
- 上传文件;
- 图片目录;
- 备份文件。
结合 Linux 定时任务:
crontab-e添加:
02* * * python3 rename.py每天凌晨自动执行。
总结
Python 最大的优势之一就是自动化处理重复工作。
批量修改文件名称只是一个简单例子。
实际项目中,还可以扩展:
- 根据日期分类;
- 自动生成目录;
- 批量处理图片;
- 自动整理服务器文件。
对于经常处理大量文件的人来说,写一个几十行的小脚本,往往可以节省大量时间。
标签:
Python、自动化、文件处理、脚本开发