--
:
--
:
--
hugo-teek is loading...
批量重命名脚本
最后更新于:
批量重命名脚本

目录
[[toc]]
[toc]
需求
请写一个python脚本,将test目录下的所有.md文件重命名下,文件1的名称为1.demo.md 文件2的名称为2.demo.md,以此类推,请给出完整代码
回答
gpt回答:
以下是一个完整的 Python 脚本,用于将 test 目录下的所有 .md 文件按顺序重命名为 1.demo.md、2.demo.md 等格式:
1import os
2
3def rename_md_files(directory="test"):
4 # 获取目标目录下所有.md文件
5 md_files = [f for f in os.listdir(directory) if f.endswith('.md')]
6 md_files.sort() # 按文件名排序(可选,确保顺序一致性)
7
8 # 遍历文件并重命名
9 for index, filename in enumerate(md_files, start=1):
10 old_path = os.path.join(directory, filename)
11 new_name = f"{index}.demo.md"
12 new_path = os.path.join(directory, new_name)
13
14 # 避免覆盖已存在的文件
15 if os.path.exists(new_path):
16 print(f"警告:{new_name} 已存在,跳过重命名 {filename}")
17 continue
18
19 os.rename(old_path, new_path)
20 print(f"重命名: {filename} -> {new_name}")
21
22if __name__ == "__main__":
23 # 检查test目录是否存在
24 if not os.path.exists("test"):
25 print("错误:'test' 目录不存在")
26 else:
27 rename_md_files()
🍊关键点说明
文件筛选
os.listdir()列出目录内容,f.endswith('.md')过滤出.md文件。排序处理
md_files.sort()确保文件按字母顺序处理(可根据需求调整排序逻辑)。安全重命名
- 使用
os.path.exists(new_path)检查是否会发生文件名冲突。 os.rename()直接修改文件名,保留原文件内容。
- 使用
索引从1开始
enumerate(..., start=1)使编号从1.demo.md开始而非0.demo.md。
🍊使用示例
假设 test 目录内容如下:
1a.md
2b.md
3c.md
运行脚本后:
11.demo.md
22.demo.md
33.demo.md
🍊扩展功能
- 递归处理子目录:
使用os.walk(directory)替代os.listdir()。 - 自定义前缀/后缀:
修改new_name = f"{index}.demo.md"中的格式(如prefix_{index}.md)。 - 日志记录:
将重命名记录写入日志文件而非仅打印。
按需调整即可满足不同场景
亲测
以上脚本,经亲自测试,有效果。2025年7月28日测试

脚本位置
D:\BaiduSyncdisk\脚本\02.Python脚本\02-批量重命名脚本

📡
👤
作者:
余温Gueen
🌐
版权:
本站文章除特别声明外,均采用
CC BY-NC-SA 4.0
协议,转载请注明来自
余温Gueen Blog!
推荐使用微信支付

推荐使用支付宝
