--
:
--
:
--
hugo-teek is loading...
批量重命名脚本-v2
最后更新于:
批量重命名脚本-v2-2025.9.8(亲测有效)

目录
[[toc]]
[toc]
需求
请写一个python脚本,将当前test目录下的所有.md文件重命名下,文件名以test1.md, test2.md,test3.md…… testn.md,以此类推,请给出完整代码
回答
下面是一个可以将当前目录下 test 文件夹中所有.md 文件按顺序重命名为 test1.md、test2.md… 的 Python 脚本:
批量重命名md文件的Python脚本
这个脚本的功能和特点:
- 首先检查 test 目录是否存在,如果不存在会给出错误提示
- 收集 test 目录中所有的.md 文件,并过滤掉目录(只处理文件)
- 对收集到的文件按原文件名进行排序(确保重命名顺序可预测)
- 按顺序将文件重命名为 test1.md、test2.md…testn.md
- 包含防覆盖机制,如果新文件名已存在,会自动添加后缀(如 test1_1.md)
- 执行过程中会显示每个文件的重命名情况,最后显示总处理数量
使用时,只需将脚本放在 test 目录的同级目录下运行即可。如果 test 目录中有子目录,脚本不会处理子目录中的.md 文件,只处理 test 目录下直接存放的.md 文件。
1import os
2
3def rename_md_files():
4 # 定义目标目录
5 target_dir = "test"
6
7 # 检查目录是否存在
8 if not os.path.exists(target_dir):
9 print(f"错误:目录 '{target_dir}' 不存在")
10 return
11
12 # 获取目录中所有的.md文件
13 md_files = []
14 for filename in os.listdir(target_dir):
15 # 检查是否是.md文件
16 if filename.endswith(".md"):
17 # 获取完整路径
18 full_path = os.path.join(target_dir, filename)
19 # 确保是文件而不是目录
20 if os.path.isfile(full_path):
21 md_files.append(full_path)
22
23 if not md_files:
24 print(f"在 '{target_dir}' 目录中没有找到.md文件")
25 return
26
27 # 按文件名排序(可选)
28 md_files.sort()
29
30 # 重命名文件
31 for i, old_path in enumerate(md_files, 1):
32 # 构建新文件名
33 new_filename = f"test{i}.md"
34 new_path = os.path.join(target_dir, new_filename)
35
36 # 避免覆盖已存在的文件
37 counter = 1
38 while os.path.exists(new_path):
39 new_filename = f"test{i}_{counter}.md"
40 new_path = os.path.join(target_dir, new_filename)
41 counter += 1
42
43 # 执行重命名
44 os.rename(old_path, new_path)
45 print(f"已重命名: {os.path.basename(old_path)} -> {new_filename}")
46
47 print(f"重命名完成,共处理 {len(md_files)} 个.md文件")
48
49if __name__ == "__main__":
50 rename_md_files()
51
亲测
以上脚本,经亲自测试,有效果。2025年9月8日测试

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

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

推荐使用支付宝
