一个安全的交互式批量文件重命名工具,支持影视文件和正则模式的重命名需求。
- 🎬 影视模式 - 快速重命名影视文件,支持多种集数标记格式(E01、S01.E01、Ep01 等)
- 🔧 正则模式 - 完全自定义批量重命名,支持复杂的正则表达式和捕获组
- 🌐 多语言支持 - 内置中英文双语界面
- 🛡️ 安全重命名 - 两阶段重命名机制,防止数据丢失
- 📋 预览确认 - 重命名前预览所有变更,确认后执行
⚠️ 冲突检测 - 自动检测并解决文件名冲突
- Python 3.7 或更高版本
- macOS / Linux / Windows
- 克隆或下载此仓库
git clone <repository-url>
cd renamer- 安装依赖
pip install -r requirements.txt或者使用 pipx(推荐,避免污染系统 Python 环境):
pipx install rich运行主程序:
python3 renamer.py程序启动后会:
- 显示欢迎界面
- 选择语言(English / 中文)
- 选择模式(影视模式 / 正则模式)
- 根据提示完成重命名操作
适合重命名影视文件,提供常用的集数匹配模式:
E(\d+)- 匹配 E01, E02, e10 等格式S\d+\.E(\d+)- 匹配 S01.E01, S02.E05 等格式Ep(\d+)- 匹配 Ep1, Ep10 等格式- 自定义正则表达式
示例:
假设有以下文件:
State.of.Divinity.1996.S01.E22.wow.mkv
State.of.Divinity.1996.S01.E23.wow.mkv
选择影视模式,匹配类型选择 E(\d+),前缀输入 This.Is.Us.S01,保留原后缀,结果:
This.Is.Us.S01.E22.mkv
This.Is.Us.S01.E23.mkv
如果你选择自定义后缀,并输入 HDTV,则结果为:
This.Is.Us.S01.E22.HDTV.mkv
This.Is.Us.S01.E23.HDTV.mkv
完全自定义的批量重命名模式,支持:
- 空匹配(按序号重命名)
- 自定义正则表达式
- 多捕获组支持(使用 $1, $2, $3... 引用)
- 替换表达式自定义
- 扩展名替换
- 排序方式选择(文件名或修改时间)
示例 1:按序号重命名
匹配项留空,输入前缀 file_,起始编号 1,位数 3,结果:
file_001.jpg
file_002.jpg
file_003.jpg
示例 2:使用捕获组
假设文件名为 bdosw.sd.E22.sbd.sd - ruyigou.jpg
匹配项:E(\d+)
替换表达式:Episode_$1
结果:Episode_22.jpg
示例 3:多捕获组
匹配项:([A-Z]+)(\d+)
替换表达式:$1_$2
- 如果匹配
ABC123,结果:ABC_123
在自定义正则表达式中,可以使用以下匹配选项(组合使用):
i- 忽略大小写(推荐)m- 多行模式s- 点号匹配换行符
示例:输入 im 表示忽略大小写且多行模式
-
备份重要文件:虽然工具使用安全的两阶段重命名,但建议在批量重命名前备份重要文件
-
预览确认:重命名前会显示所有变更计划,请仔细确认后再执行
-
冲突处理:如果检测到文件名冲突(多个文件重命名为同一名称,或目标名已存在),工具会提示自动添加数字后缀解决冲突
-
临时文件:如果重命名过程中异常中断,目录中可能留下包含
__tmp__的临时文件,请手动清理 -
正则表达式:
- 在正则模式下,匹配项留空表示按序号重命名
- 使用捕获组时,替换表达式中使用
$1,$2等引用捕获组 - 支持多个正则表达式(用逗号分隔)
renamer/
├── renamer.py # 主入口文件
├── video_mode.py # 影视模式
├── normal_mode.py # 正则模式
├── utils.py # 工具函数
├── i18n.py # 国际化模块
├── locales/ # 语言文件目录
│ ├── en.json # 英文翻译
│ └── zh.json # 中文翻译
├── requirements.txt # 依赖列表
└── README.md # 说明文档