示例代码

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  # 如果找到中文数字,则不再继续寻找

效果展示

Python---使用Python代码批量重命名(也可以更改子文件夹下面的文件名称)_开发语言