Python批量重命名文件的实用案例
引言
在日常工作中,我们常常会遇到需要批量处理文件的情况,例如整理照片、管理文档等。手动逐个重命名文件既费时又容易出错。Python 提供了强大的文件操作功能,可以帮助我们快速实现批量重命名。本文将通过几个实际案例,详细介绍如何使用 Python 批量重命名文件。
案例背景
假设我们有一个包含多个图片文件的文件夹,文件名格式如下:
image_001.jpg
image_002.jpg
image_003.jpg
...
我们的目标是将这些文件名中的编号部分提取出来,并按照新的格式重新命名文件。例如,将文件名改为:
new_image_1.jpg
new_image_2.jpg
new_image_3.jpg
...
此外,我们还可能遇到其他类型的批量重命名需求,例如:
- 将所有文件名中的特定字符替换为另一个字符。
- 在文件名中添加或删除某些前缀/后缀。
- 按照某种规则重新排序文件名。
实现思路
- 确定文件路径和目标格式
首先,我们需要明确待处理文件所在的路径以及目标文件名的格式。可以通过以下方式获取文件列表:
import os
获取当前目录下的所有文件
current_dir = os.getcwd()
files = os.listdir(current_dir)
- 编写重命名逻辑
根据具体需求,编写重命名逻辑。例如,对于上述案例,我们可以提取文件名中的编号部分,并将其转换为新的格式。
- 处理异常情况
在批量处理文件时,可能会遇到一些异常情况,例如文件不存在、权限不足等。因此,在编写代码时需要加入异常处理机制,以避免程序崩溃。
代码实现
案例 1:简单数字递增重命名
目标
将文件名中的编号部分提取出来,并按照新的格式重新命名文件。
实现步骤
- 遍历文件夹中的所有文件。
- 对于每个文件,检查其是否符合特定的命名格式(例如
image_XXX.jpg
)。 - 提取编号部分,并将其转换为整数。
- 生成新的文件名,并执行重命名操作。
代码示例
import os
def rename_files():
# 设置目标路径
target_dir = os.getcwd()
# 遍历目录中的所有文件
for filename in os.listdir(target_dir):
# 检查文件是否为 JPG 格式
if filename.endswith('.jpg'):
# 分割文件名和扩展名
name, ext