Skip to main content

batch-rename-by-excel

按 Excel 中记录的新旧文件名映射批量重命名文件。当用户提到按表格/清单批量改名、按 Excel 对照表重命名文件、批量修改文件名但改名规则已列在表格里时使用。

Source facts

Repository
CoderWanFeng/python-office
Last source activity
October 26, 2026 at 05:52
Detected SKILL.md language
Chinese
Stars
1,370
Forks
305

Install options

The review-first prompt is selected by default. You can switch to a direct command or download a local copy.

Review the source files

Read SKILL.md and any companion files shown by SkillsMP before deciding whether to install.

File Explorer
2 files

Showing SKILL.md

SKILL.md
Source instructions · Read-only preview
name
batch_rename_by_excel
description
按 Excel 中记录的新旧文件名映射批量重命名文件。当用户提到按表格/清单批量改名、按 Excel 对照表重命名文件、批量修改文件名但改名规则已列在表格里时使用。
# batch_rename_by_excel Skill > 按 Excel 映射批量重命名文件 ## 功能描述 用户手里有一批需要改名的文件,改名前后的对应关系已经整理在 Excel 里。本 Skill 读取 Excel 中的「原文件名 → 新文件名」映射,批量重命名指定目录下的文件。 和 `replace4filename` 的区别:`replace4filename` 是「按规则批量替换文件名中的字符」, 本 Skill 是「按 Excel 中逐行指定的映射改名」,适合改名规则不统一、只能逐个列出的场景。 ## 所属分类 `skills/file/batch_rename_by_excel/` ## 调用方式 ```python from skills.file.batch_rename_by_excel import batch_rename_by_excel ``` 实现代码位于贡献者目录,也可以直接引用: ```python from contributors.my12yyds.batch_rename_by_excel import batch_rename_by_excel ``` > 注意:`contributors/` 不随 `pip install python-office` 一起发布,安装包环境中请直接 > 复制 `contributors/my12yyds/batch_rename_by_excel.py` 到自己的项目里使用。 ## 参数说明 | 参数 | 类型 | 必填 | 默认值 | 说明 | |------|------|------|--------|------| | `excel_path` | str | 是 | - | 记录新旧文件名映射的 Excel 文件路径,支持 `.xlsx` | | `folder_path` | str | 是 | - | 需要重命名文件所在的目录路径,只处理该目录第一层的文件 | | `old_name_column` | str | 否 | `'原文件名'` | Excel 中存放原文件名的列名 | | `new_name_column` | str | 否 | `'新文件名'` | Excel 中存放新文件名的列名 | | `sheet_name` | str | 否 | `None` | 工作表名称,默认使用第一个工作表 | | `dry_run` | bool | 否 | `False` | 为 `True` 时只返回重命名计划,不真正修改文件 | ## 返回值 `dict`,包含 4 个键: | 键 | 类型 | 说明 | |----|------|------| | `renamed` | list | 已重命名的记录,元素为 `(原文件名, 新文件名)` 元组;`dry_run=True` 时为计划重命名的记录 | | `skipped` | list | 未执行重命名的记录,元素为 `(文件名, 原因)` 元组,例如新旧文件名相同、原文件名或新文件名为空 | | `missing` | list | Excel 中有记录、但目录下找不到的原文件名 | | `conflicts` | list | 目标文件名已存在,为避免覆盖而跳过的原文件名 | ## 使用示例 Excel 内容(表头必须是这两列): | 原文件名 | 新文件名 | |---|---| | a.txt | 2026年1月报表.txt | | b.txt | 2026年2月报表.txt | ```python from skills.file.batch_rename_by_excel import batch_rename_by_excel # 先预览,确认映射没问题 result = batch_rename_by_excel( excel_path='./rename_list.xlsx', folder_path='./files', dry_run=True, ) print(result['renamed']) # 确认无误后再真正执行 result = batch_rename_by_excel( excel_path='./rename_list.xlsx', folder_path='./files', ) print('成功', len(result['renamed']), '个') print('找不到', result['missing']) print('目标已存在', result['conflicts']) ``` ## 原始函数 `contributors/my12yyds/batch_rename_by_excel.py::batch_rename_by_excel`
View on GitHub