00:00:00
批量重命名脚本-v2
批量重命名脚本-v2-2025.9.8(亲测有效)
目录
[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 文件。
python
import os
def rename_md_files():
# 定义目标目录
target_dir = "test"
# 检查目录是否存在
if not os.path.exists(target_dir):
print(f"错误:目录 '{target_dir}' 不存在")
return
# 获取目录中所有的.md文件
md_files = []
for filename in os.listdir(target_dir):
# 检查是否是.md文件
if filename.endswith(".md"):
# 获取完整路径
full_path = os.path.join(target_dir, filename)
# 确保是文件而不是目录
if os.path.isfile(full_path):
md_files.append(full_path)
if not md_files:
print(f"在 '{target_dir}' 目录中没有找到.md文件")
return
# 按文件名排序(可选)
md_files.sort()
# 重命名文件
for i, old_path in enumerate(md_files, 1):
# 构建新文件名
new_filename = f"test{i}.md"
new_path = os.path.join(target_dir, new_filename)
# 避免覆盖已存在的文件
counter = 1
while os.path.exists(new_path):
new_filename = f"test{i}_{counter}.md"
new_path = os.path.join(target_dir, new_filename)
counter += 1
# 执行重命名
os.rename(old_path, new_path)
print(f"已重命名: {os.path.basename(old_path)} -> {new_filename}")
print(f"重命名完成,共处理 {len(md_files)} 个.md文件")
if __name__ == "__main__":
rename_md_files()
亲测
以上脚本,经亲自测试,有效果。2025年9月8日测试
脚本位置
D:\BaiduSyncdisk\脚本\02.Python脚本\02-批量重命名脚本\v2