Skip to content

批量重命名工具,包括快捷的影视模式,方便对电视剧文件名进行批量重命名。以及正则模式,基本上可以用来批量重命名一切文件。

Notifications You must be signed in to change notification settings

jason5ng32/renamer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

批量重命名工具 (Batch Rename Tool)

一个安全的交互式批量文件重命名工具,支持影视文件和正则模式的重命名需求。

功能特性

  • 🎬 影视模式 - 快速重命名影视文件,支持多种集数标记格式(E01、S01.E01、Ep01 等)
  • 🔧 正则模式 - 完全自定义批量重命名,支持复杂的正则表达式和捕获组
  • 🌐 多语言支持 - 内置中英文双语界面
  • 🛡️ 安全重命名 - 两阶段重命名机制,防止数据丢失
  • 📋 预览确认 - 重命名前预览所有变更,确认后执行
  • ⚠️ 冲突检测 - 自动检测并解决文件名冲突

系统要求

  • Python 3.7 或更高版本
  • macOS / Linux / Windows

安装

  1. 克隆或下载此仓库
git clone <repository-url>
cd renamer
  1. 安装依赖
pip install -r requirements.txt

或者使用 pipx(推荐,避免污染系统 Python 环境):

pipx install rich

使用方法

运行主程序:

python3 renamer.py

程序启动后会:

  1. 显示欢迎界面
  2. 选择语言(English / 中文)
  3. 选择模式(影视模式 / 正则模式)
  4. 根据提示完成重命名操作

影视模式

适合重命名影视文件,提供常用的集数匹配模式:

  • 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 表示忽略大小写且多行模式

注意事项

  1. 备份重要文件:虽然工具使用安全的两阶段重命名,但建议在批量重命名前备份重要文件

  2. 预览确认:重命名前会显示所有变更计划,请仔细确认后再执行

  3. 冲突处理:如果检测到文件名冲突(多个文件重命名为同一名称,或目标名已存在),工具会提示自动添加数字后缀解决冲突

  4. 临时文件:如果重命名过程中异常中断,目录中可能留下包含 __tmp__ 的临时文件,请手动清理

  5. 正则表达式

    • 在正则模式下,匹配项留空表示按序号重命名
    • 使用捕获组时,替换表达式中使用 $1, $2 等引用捕获组
    • 支持多个正则表达式(用逗号分隔)

项目结构

renamer/
├── renamer.py          # 主入口文件
├── video_mode.py       # 影视模式
├── normal_mode.py      # 正则模式
├── utils.py            # 工具函数
├── i18n.py             # 国际化模块
├── locales/            # 语言文件目录
│   ├── en.json         # 英文翻译
│   └── zh.json         # 中文翻译
├── requirements.txt    # 依赖列表
└── README.md           # 说明文档

About

批量重命名工具,包括快捷的影视模式,方便对电视剧文件名进行批量重命名。以及正则模式,基本上可以用来批量重命名一切文件。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages