如何用Python批量将多个父文件夹下的子文件夹重命名为‘父文件夹名+Colour_序号’格式
批量重命名子文件夹的解决方案
没问题,我来帮你把脚本改成批量处理的版本,同时优化一些细节让它更稳健,适合处理大量文件夹:
你的原脚本只能处理单个指定的父文件夹,我们只需要在外层加一个循环,遍历所有目标父文件夹,然后对每个父文件夹重复你原来的重命名逻辑就行。不过要注意几个关键点:路径拼接要安全、避免误处理文件、确保只操作文件夹。
修改后的批量处理脚本
import os # 所有父文件夹的上级根目录(比如Apple_1、Apple_2都在这个目录下) root_parent_dir = r'D:/Home/Fruit/Apples' # 遍历根目录下的每一个父文件夹 for parent_folder_name in os.listdir(root_parent_dir): # 拼接当前父文件夹的完整路径 parent_folder_path = os.path.join(root_parent_dir, parent_folder_name) # 跳过非文件夹的项目(比如根目录下的文件) if not os.path.isdir(parent_folder_path): continue # 可选:如果你只想处理特定前缀的父文件夹(比如只处理Apple_开头的),可以加这个判断 # if not parent_folder_name.startswith('Apple_'): # continue # 开始处理当前父文件夹下的子文件夹 sub_folder_number = 1 for sub_folder_name in os.listdir(parent_folder_path): sub_old_path = os.path.join(parent_folder_path, sub_folder_name) # 只处理子文件夹,跳过文件 if not os.path.isdir(sub_old_path): continue # 构造新的子文件夹名称:父文件夹名 + Colour_编号 sub_new_name = f"{parent_folder_name} Colour_{sub_folder_number}" sub_new_path = os.path.join(parent_folder_path, sub_new_name) # 执行重命名(建议先注释掉这行,改成print预览操作,确认无误再放开) # print(f"重命名: {sub_old_path} -> {sub_new_path}") os.rename(sub_old_path, sub_new_path) sub_folder_number += 1
关键优化点说明
- 安全路径拼接:用
os.path.join代替手动拼接//,它会自动适配Windows/Linux的路径分隔符,避免路径错误。 - 文件夹判断:增加了
os.path.isdir检查,确保我们只操作文件夹,不会误改文件。 - 批量遍历:外层循环遍历根目录下的所有父文件夹,自动处理每一个符合条件的文件夹,不用手动修改路径重复运行。
- 可选前缀过滤:如果你的根目录下还有其他无关文件夹,可以打开注释里的
startswith判断,只处理指定前缀的父文件夹。
更现代的Pathlib写法(推荐)
如果你用的是Python 3.4及以上版本,pathlib模块让路径处理更简洁直观:
from pathlib import Path root_parent_dir = Path(r'D:/Home/Fruit/Apples') for parent_folder in root_parent_dir.iterdir(): # 跳过非文件夹 if not parent_folder.is_dir(): continue # 可选:过滤前缀 # if not parent_folder.name.startswith('Apple_'): # continue sub_folder_number = 1 for sub_folder in parent_folder.iterdir(): if not sub_folder.is_dir(): continue # 直接用路径拼接语法构造新路径 new_sub_folder = parent_folder / f"{parent_folder.name} Colour_{sub_folder_number}" sub_folder.rename(new_sub_folder) sub_folder_number += 1
重要提示
在执行重命名前,强烈建议先备份数据,或者把os.rename注释掉,换成print语句预览所有要执行的重命名操作,确认没有问题后再正式运行脚本,避免误操作导致文件丢失。
内容的提问来源于stack exchange,提问作者Kalsi
相关产品推荐
相关产品推荐

