import os def rename_folders(root_dir, level=1, parent_prefix=''): # 计数器,用于生成唯一的名称 counter = 1 # 遍历文件夹 for dirpath, dirnames, filenames in os.walk(root_dir): # 只处理文件夹(不处理文件) for dirname in dirnames: # 构建原始文件夹路径 old_path = os.path.join(dirpath, dirname) # 生成新的文件夹名称前缀 if level == 1: # 一级目录直接以0开头递增 new_prefix = f'0{counter:02d}' # 使用三位数,不足部分用0填充 else: # 二级及以上目录使用父级目录的名称和_作为分隔符,再加上递增的数字 new_prefix = f'{parent_prefix}_{counter:02d}' # 检查新名称是否已经存在 new_name = new_prefix new_path = os.path.join(dirpath, new_name) while os.path.exists(new_path): # 如果存在,增加计数器 counter += 1 new_name = f'{new_prefix[:-3]}{counter:02d}' if '_' in new_prefix else f'0{counter:02d}' new_path = os.path.join(dirpath, new_name) # 重命名文件夹 os.rename(old_path, new_path) print(f"Renamed {old_path} to {new_path}") # 递归处理子文件夹,并更新前缀和级别 rename_folders(new_path, level + 1, new_name) # 重置计数器,因为每个新的级别都需要从1开始计数 counter = 1 # 使用示例 root_dir = "H:\\00002_zw" # 替换为您的根目录路径 root_dir = "H:\\zw_new" # 替换为您的根目录路径 rename_folders(root_dir)
标签:重命名,python,counter,prefix,文件夹,new,path,os From: https://www.cnblogs.com/xuchunlin/p/18167622