大家好,我是何三,80后老猿,独立开发者
接下来我会写一系列5分钟就能搞定的python自动化脚本,日常办公经常会遇到需要批量化操作的工作其实有很多,自己一个一个搞很枯燥,当然也可以在网上找脚本软件下载来用,有的时候网上找的软件就像当前的Ai抽盲盒(不确定能不能用),要不没法使用,要不提示病毒,而python是专门写脚本的一门编程语言,大多数情况下5分钟写一个小脚本可能就能满足你的需求,今天就以5分钟用Python批量重命名文件的脚本开始。
有这样的场景:你的手机里有500张旅行照片,文件名杂乱无章:IMG_20231001_123456.jpg
、IMG_20231001_123457.jpg
... 你想要把它们统一命名为 vacation_001.jpg
、vacation_002.jpg
这样整洁的格式。
传统做法:一个个重命名,耗时30分钟,枯燥乏味,还容易出错。
Python做法:5行代码,执行3秒钟,一键完成!
今天,我就带你用5分钟掌握这个让你工作效率翻倍的神奇技能!
环境准备:零基础也能跟上
在开始之前,你只需要:
- 安装Python(如果还没安装,去官网下载,安装时记得勾选"Add Python to PATH")
- 一个文本编辑器(记事本、VS Code都可以)
- 要重命名的文件文件夹
就是这么简单!不需要任何编程基础,跟着我做就行。
核心代码:10行魔法
让我们先看看完整的代码,感受一下Python的简洁与强大:
import os # 导入文件操作工具箱
# 设置要处理的文件夹路径
folder_path = "./photos"
# 获取文件夹内所有文件名
files = os.listdir(folder_path)
# 遍历每个文件并重命名
for i, filename in enumerate(files):
# 生成新名字:vacation_001.jpg 格式
new_name = f"vacation_{i+1:03d}.jpg"
# 构建完整的文件路径
old_path = os.path.join(folder_path, filename)
new_path = os.path.join(folder_path, new_name)
# 执行重命名!
os.rename(old_path, new_path)
print("批量重命名完成!")
逐行详解:理解每一行代码的魔力
第1行:导入工具箱
import os
这行代码告诉Python:"我要使用操作系统的文件管理功能"。os
模块是Python自带的,不需要额外安装。
第2-3行:指定目标
folder_path = "./photos"
files = os.listdir(folder_path)
- 第2行:设置文件夹路径。
"./photos"
表示当前目录下的photos文件夹,你需要把它换成你自己的文件夹路径 - 第3行:
os.listdir()
会列出指定文件夹内的所有文件名,就像让助手把文件都摊在桌上给你看
第4-9行:执行重命名(核心魔法)
for i, filename in enumerate(files):
new_name = f"vacation_{i+1:03d}.jpg"
old_path = os.path.join(folder_path, filename)
new_path = os.path.join(folder_path, new_name)
os.rename(old_path, new_path)
这是最精彩的部分!让我们拆解理解:
循环遍历:
for i, filename in enumerate(files):
enumerate
就像一个自动发号机,给每个文件分配一个序号(i),同时拿到文件名(filename)。
生成新名字:
new_name = f"vacation_{i+1:03d}.jpg"
这里使用了Python的f-string功能:
- vacation_
是前缀,你可以随意修改
- {i+1:03d}
表示从1开始的3位数编号(001, 002, 003...)
- .jpg
是文件扩展名
构建路径:
old_path = os.path.join(folder_path, filename)
new_path = os.path.join(folder_path, new_name)
os.path.join()
会智能地拼接文件夹路径和文件名,确保在任何操作系统上都能正常工作。
执行重命名:
os.rename(old_path, new_path)
这就是施展魔法的一行!它把旧路径的文件移动到新路径,完成重命名。
实战演示:见证奇迹的时刻
- 准备阶段:创建一个名为
photos
的文件夹,里面放一些测试文件 - 保存脚本:将上面的代码保存为
rename_files.py
,放在与photos
文件夹同级的目录 - 运行脚本:打开命令行,输入:
python rename_files.py
- 查看结果:打开photos文件夹,你会发现所有文件都已经整齐重命名!
运行前:
photos/
├── IMG_20231001_123456.jpg
├── IMG_20231001_123457.jpg
├── IMG_20231001_123458.jpg
└── ...
运行后:
photos/
├── vacation_001.jpg
├── vacation_002.jpg
├── vacation_003.jpg
└── ...
举一反三:定制你的重命名规则
这个脚本的强大之处在于它的灵活性!你可以轻松修改来满足不同需求:
案例1:更改前缀和格式
# 改为:trip_001.png
new_name = f"trip_{i+1:03d}.png"
案例2:更改编号位数
# 改为:photo_0001.jpg(4位数)
new_name = f"photo_{i+1:04d}.jpg"
案例3:添加日期前缀
from datetime import datetime
date_str = datetime.now().strftime("%Y%m%d")
new_name = f"{date_str}_{i+1:03d}.jpg"
案例4:只重命名特定类型文件
# 只处理jpg文件
if filename.endswith('.jpg'):
new_name = f"image_{i+1:03d}.jpg"
# ...其余代码
注意事项与进阶技巧
安全第一:备份重要文件
在运行脚本前,建议先对重要文件进行备份,或者先在测试文件夹中尝试。
处理特殊情况的增强版脚本
如果你想要更安全的脚本,可以添加错误处理:
import os
folder_path = "./photos"
files = os.listdir(folder_path)
for i, filename in enumerate(files):
# 跳过隐藏文件和文件夹
if filename.startswith('.'):
continue
# 获取文件扩展名
file_ext = os.path.splitext(filename)[1]
new_name = f"vacation_{i+1:03d}{file_ext}"
old_path = os.path.join(folder_path, filename)
new_path = os.path.join(folder_path, new_name)
try:
os.rename(old_path, new_path)
print(f"成功重命名: {filename} -> {new_name}")
except Exception as e:
print(f"重命名失败 {filename}: {e}")
print("批量重命名完成!")
结语:你的自动化之旅刚刚开始
恭喜!在短短的5分钟内,你已经掌握了:
✅ Python文件操作的基本方法
✅ 批量重命名的核心技巧
✅ 代码定制化的思路
✅ 错误处理的基本概念
这只是Python自动化能力的冰山一角。想象一下,你还可以用类似的方法:
- 批量整理下载文件夹
- 自动化处理Excel报表
- 批量下载网络图片
- 自动归类整理文档
编程的本质不是写代码,而是创造解决实际问题的工具。
现在,你已经有了一把利器。试着用今天学到的知识解决你工作中实际的文件命名问题,在评论区分享你的成果和遇到的挑战!
记得关注我,后续会带来更多实用的Python自动化技巧!