Python自动化办公之批量重命名
日常工作中总会遇到一些需要收集文件的情况,即便在收集前千叮咛万嘱咐,告知大家文件命名规则为 “编号-项目名称”,可最后收集回来的文件,名称依旧五花八门。有的使用横杠作为分隔符,有的却用下划线;编号错误的情况时有发生,甚至连项目名称也写错,这无疑给后续的文件整理和数据分析工作带来了极大的困扰。
比如,我们有一份正确的编号和项目名称对应关系的Excel表格,内容如下:
编号 | 项目名称 |
---|---|
250211 | 苹果 |
250212 | 香蕉 |
250216 | 桃子 |
按照规范,收集到的文件命名应该是 “250211-苹果.docx”、“250212-香蕉.docx”、“250216-桃子.docx” 。但现实总是很残酷,实际收集到的文件却是 “250211_苹果.docx”(分隔符错误)、“2502122-香蕉.docx”(编号错误)、“250216-橘子.docx”(项目名称错误)。面对如此混乱的文件命名,人工逐一修改不仅耗时费力,还容易出错,这时我们急需工具进行批量重命名。Python作为强大的编程语言,能够高效解决这类问题,接下来就让我们看看如何通过Python实现批量重命名操作。
1. 需求分析
面对这些混乱的文件命名,我们需要解决以下关键问题:
- 统一分隔符: 将所有文件中不同的分隔符,如横杠、下划线等,全部替换为指定的横杠分隔符。
- 检查编号错误: 以Excel表格中的编号为基准,检查文件名中的编号是否有错误,如出现编号重复或编号不在Excel中则提醒人工检查。
- 纠正项目名称: 根据 Excel 表格中的映射关系,把错误的项目名称替换为正确的名称。
2. 安装依赖库
为达成上述功能,我们会运用Python的os
库处理文件操作,re
库进行正则表达式匹配与字符串替换,pandas
库读取Excel文件中的映射关系。
在开始编写代码前,要确保已经安装了pandas
库。若未安装,可通过以下命令进行安装:
pip install pandas
3. 代码实现
以下代码首先读取Excel文件中的编号与项目名称对应关系,然后遍历当前目录下的所有文件。对于每个文件,先统一分隔符,再检查编号是否正确,最后根据 Excel 中的映射关系纠正项目名称,并完成文件的重命名操作。在执行过程中,对于出现错误的文件,会给出相应的提示信息,方便人工进行检查和处理。
3.1 rename.py
import os
import pandas as pd
import re
def rename_files(excel_path, old_files_path, new_files_path):
# 获取当前脚本所在目录
parent = os.path.dirname(os.path.realpath(__file__))
# 构建 Excel 文件的完整路径
excel_path = os.path.join(parent, excel_path)
# 构建待重命名文件所在目录的完整路径
old_files_path = os.path.join(parent, old_files_path