batch-rename-by-excel
按 Excel 中记录的新旧文件名映射批量重命名文件。当用户提到按表格/清单批量改名、按 Excel 对照表重命名文件、批量修改文件名但改名规则已列在表格里时使用。
소스 정보
- 저장소
- CoderWanFeng/python-office
- 최근 소스 활동
- 2026년 10월 26일 05:52
- 감지된 SKILL.md 언어
- 중국어
- 스타
- 1,371
- 포크
- 305
설치 방법
기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.
소스 파일 검토
설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.
파일 탐색기
2 개 파일SKILL.md 표시 중
SKILL.md
소스 지침 · 읽기 전용 미리보기- 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`
GitHub에서 보기