python 对文件夹重命名

 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)

 

posted @ 2024-04-30 11:03  淋哥  阅读(84)  评论(0编辑  收藏  举报