一、前言
本篇综合运用前面学过的变量、循环、文件操作、异常捕获、os 模块、函数封装所有知识点,制作一个实用工具脚本:批量重命名文件夹内所有文件。
日常场景:下载图片、文档杂乱命名,手动改名效率极低,用 Python 一键批量处理,支持自定义前缀、数字排序。
二、前置知识准备
核心用到内置os模块,无需额外 pip 安装,直接导入:
os.listdir():读取文件夹内所有文件名称os.path.join():拼接文件夹路径 + 文件名,防止路径报错os.rename():执行文件重命名操作os.path.isfile():判断是否为文件(过滤文件夹,不修改子目录名)
三、基础版:统一前缀 + 有序数字重命名
功能:指定文件夹,全部文件重命名为 文件_01、文件_02、文件_03...
python
运行
import os
# 1. 配置参数,修改这里即可适配自己的文件夹
folder_path = r"C:\Users\XXX\Desktop\素材" # 目标文件夹路径
prefix = "素材" # 自定义文件前缀
start_num = 1 # 起始编号
try:
# 遍历文件夹所有内容
file_list = os.listdir(folder_path)
count = start_num
for name in file_list:
# 拼接完整文件路径
old_full_path = os.path.join(folder_path, name)
# 只处理文件,跳过文件夹
if os.path.isfile(old_full_path):
# 拆分原文件名和后缀
file_suffix = os.path.splitext(name)[1]
# 拼接新文件名,两位数编号 01 02
new_name = f"{prefix}_{count:02d}{file_suffix}"
new_full_path = os.path.join(folder_path, new_name)
# 执行重命名
os.rename(old_full_path, new_full_path)
print(f"已重命名:{name} → {new_name}")
count += 1
print(f"\n批量重命名完成!总共处理 {count - start_num} 个文件")
except FileNotFoundError:
print("错误:文件夹路径不存在,请检查路径填写是否正确")
except Exception as err:
print(f"程序运行出错:{err}")
使用说明
修改
folder_path为你本地真实文件夹路径,Windows 路径前加r避免转义报错修改
prefix自定义文件开头文字count:02d代表编号占两位,不足补 0(01、02),改成03d就是三位编号(001、002)
四、进阶版:过滤指定后缀(只重命名图片 / 文档)
需求:只修改.jpg、.png图片文件,txt、exe 等其他文件忽略
python
运行
import os
folder_path = r"C:\Users\XXX\Desktop\图片"
prefix = "风景图"
allow_suffix = [".jpg", ".png", ".jpeg"] # 允许处理的文件后缀
count = 1
try:
all_file = os.listdir(folder_path)
for filename in all_file:
full_old = os.path.join(folder_path, filename)
if os.path.isfile(full_old):
suffix = os.path.splitext(filename)[1].lower()
# 判断后缀是否在允许列表
if suffix in allow_suffix:
new_filename = f"{prefix}_{count:03d}{suffix}"
full_new = os.path.join(folder_path, new_filename)
os.rename(full_old, full_new)
print(f"{filename} → {new_filename}")
count += 1
print(f"\n图片重命名完毕,共处理 {count - 1} 张图片")
except Exception as e:
print("异常:", e)
五、函数封装完整版(可重复调用)
把功能封装成函数,支持随时更换文件夹、前缀、过滤后缀,复用性更强
python
运行
import os
def batch_rename(folder, prefix, start=1, filter_suffix=None):
"""
批量重命名文件函数
:param folder: 目标文件夹路径
:param prefix: 文件名称前缀
:param start: 起始数字编号
:param filter_suffix: 列表,指定只处理哪些后缀文件,None则全部处理
:return: 返回成功处理的文件总数
"""
if not os.path.exists(folder):
raise FileNotFoundError("目标文件夹不存在")
file_count = start
file_list = os.listdir(folder)
for name in file_list:
old_path = os.path.join(folder, name)
if not os.path.isfile(old_path):
continue
suffix = os.path.splitext(name)[1]
# 后缀过滤逻辑
if filter_suffix is not None and suffix not in filter_suffix:
continue
new_name = f"{prefix}_{file_count:02d}{suffix}"
new_path = os.path.join(folder, new_name)
os.rename(old_path, new_path)
print(f"{name} → {new_name}")
file_count += 1
return file_count - start
# ========== 调用函数 ==========
if __name__ == "__main__":
try:
total = batch_rename(
folder=r"C:\Users\XXX\Desktop\文档",
prefix="学习笔记",
start=1,
filter_suffix=[".txt", ".md"]
)
print(f"\n执行完成,共修改 {total} 个文件")
except Exception as error:
print("运行失败:", error)
六、运行前重要注意事项
备份文件:运行脚本前复制一份文件备份,防止命名出错无法恢复
路径规范:Windows 路径使用原始字符串
r"路径",避免\转义导致报错权限问题:文件夹放在桌面 / 文档,不要直接操作 C 盘根目录,会权限不足
中文支持:Python3 默认支持中文文件名,无需额外修改编码
重复名称:脚本按顺序递增编号,不会出现同名覆盖文件的问题
七、常见报错解决
FileNotFoundError:文件夹路径复制错误,检查文件夹是否存在PermissionError:程序没有修改文件权限,右键 CMD 选择「以管理员身份运行」文件被占用:图片 / 文档正在其他软件打开,关闭后再执行脚本
后缀过滤不生效:后缀大小写问题,代码中用
.lower()统一小写匹配
八、下期预告
下一篇:Python Tkinter 简易 GUI 窗口程序开发教程,给脚本制作可视化图形界面,不用命令行操作。