Python批量文件重命名_自动化解析【教程】

10次阅读

批量重命名文件可用 Python 的 os.rename() 或 pathlib.Path.rename() 实现,需先解析原名信息、定义新规则、安全预览再执行;示例脚本按创建时间 + 序号重命名。jpg 文件。

Python 批量文件重命名_自动化解析【教程】

批量重命名文件用 Python 实现,核心是 os.rename()pathlib.Path.rename(),配合循环和字符串处理即可完成自动化解析与重命名。关键在于:明确原始文件名规律、定义新命名规则、安全预览、再执行。

识别并提取原始文件信息

多数批量重命名需从旧名中“解析”有用信息,比如日期、编号、类型标识等。常用方法:

  • str.split() 拆分下划线 / 短横 / 空格分隔的字段(如 "IMG_20231005_001.jpg" → 提取 "20231005""001"
  • re.search() 匹配复杂模式(如从 "report_v2_final_2024-03-15.pdf" 中提取 "2024-03-15"
  • pathlib.Path.stem 获取无后缀的主文件名,避免手动切后缀

构造规范的新文件名

命名规则要清晰、可读、可排序。常见策略:

  • 统一前缀 + 解析出的日期 + 序号(如 f"photo_20231005_{i:03d}.jpg"
  • 按类型归类重命名:"log_" + 日期 + "_" + 序号
  • 保留原扩展名:new_name = f"{clean_base}.{old_path.suffix.lstrip('.')}"
  • 避免非法字符(/ : * ? "|),可用 re.sub(r'[^w.-]','_', name) 清洗

安全执行:先预览,再重命名

误操作可能造成文件丢失或混乱,务必分两步:

立即学习 Python 免费学习笔记(深入)”;

  • 第一步:遍历所有目标文件,打印「旧名 → 新名」映射,人工核对 2–3 个是否符合预期
  • 第二步:确认无误后,再调用 old_path.rename(new_path);建议加 try……except 捕获权限或重名错误
  • 可选:添加 --dry-run 参数控制是否真实执行(用 argparse 实现)

完整轻量示例(按创建日期 + 序号重命名)

以下脚本将当前目录下所有 .jpg 文件,按文件创建时间升序,重命名为 img_20231005_001.jpg 格式:

from pathlib import Path import time 

folder = Path(".") jpgs = sorted(folder.glob("*.jpg"), key=lambda p: p.stat().st_ctime)

for i, old_path in enumerate(jpgs, 1): ctime = time.localtime(old_path.stat().st_ctime) date_str = time.strftime("%Y%m%d", ctime) newname = f"img{datestr}{i:03d}{old_path.suffix}" new_path = old_path.parent / new_name print(f"→ {old_path.name} → {new_name}")

取消下一行注释才真正执行

# old_path.rename(new_path)

星耀云
版权声明:本站原创文章,由 星耀云 2025-12-31发表,共计1294字。
转载说明:转载本网站任何内容,请按照转载方式正确书写本站原文地址。本站提供的一切软件、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。
text=ZqhQzanResources