一句话上手
用 scripts/rename.py 按规则批量改名:默认 dry-run 预览,确认后才执行;个人目录(桌面/下载/文档/Home)一律拒绝,绝不递归删除。
触发场景
- 用户说「把这文件夹里的图片按 001 开始命名 / 把空格换成下划线 / 加前缀」
- 关键词:批量重命名、rename、规范化文件名、normalize filenames
安全铁律
- 只操作用户明确指定的目录,不递归上级、不碰个人目录
- 个人目录黑名单(直接拒绝):Desktop、Downloads、Documents、Home、
/、C:\、AppData、Library - 任何重命名都先
--dry-run打印变更清单,用户确认后才--apply - 改名前自动检测冲突(目标已存在则跳过并报告),不覆盖
用法
# 预览(默认,不改任何文件)
python scripts/rename.py <目录> --mode snake --dry-run
# 执行
python scripts/rename.py <目录> --mode snake --apply
# 正则替换
python scripts/rename.py <目录> --regex " " "_" --apply
# 加前缀/序号
python scripts/rename.py <目录> --prefix "proj-" --number
模式(mode)
snake:空格/连字符 → 下划线,去首尾点kebab:空格 → 连字符lower:全小写number:按当前顺序加001_前缀regex:自定义查找/替换
工作流
- 要目录路径,先校验是否在黑名单
- 选模式/规则,跑
--dry-run给用户看清单 - 用户说「执行」后才
--apply - 报告成功/跳过/冲突数量
注意事项
- 不改文件内容,只改名字
- 跨文件系统/权限不足的文件跳过并报告,不中断
- 执行前建议用户自行备份
排错
- 目录被拒:说明在黑名单,请换项目目录
- 编码乱码:Windows 下用 UTF-8 路径,脚本已处理