示例代码
import os
import re
import shutil
# 中文数字到阿拉伯数字的映射
chinese_num_map = {
'一': '1', '二': '2', '三': '3', '四': '4', '五': '5',
'六': '6', '七': '7', '八': '8', '九': '9', '十': '10'
}
# 获取当前目录
folder = os.getcwd()
# 用户输入旧的后缀
old_suffix = input("请输入需要替换的旧后缀: (eg:会把01替换为第n次实验)")
# 递归遍历当前目录及子目录的文件
for root, dirs, files in os.walk(folder):
for file in files:
# 获取文件的完整路径
filepath = os.path.join(root, file)
filename, ext = os.path.splitext(file)
# 提取父目录名称
parent_folder = os.path.basename(root)
# 查找文件夹名称中的中文数字
for chinese_num, arabic_num in chinese_num_map.items():
if chinese_num in parent_folder:
# 将中文数字转换为阿拉伯数字并格式化为两位数字
experiment_num = f"{int(arabic_num):02d}"
# 创建新的后缀(例如 01, 02)
new_suffix = f"{experiment_num}"
# 如果文件名以旧后缀结尾
if filename.endswith(old_suffix):
# 去掉旧后缀并添加新的后缀
new_name = filename[:-len(old_suffix)] + new_suffix
new_fullpath = os.path.join(root, new_name + ext)
# 重命名文件
shutil.move(filepath, new_fullpath)
# 输出重命名操作
print(f'文件 {filepath} 已重命名为 {new_fullpath}')
break # 如果找到中文数字,则不再继续寻找
效果展示