如何在现有文件夹下按序号顺延规则批量创建子文件夹
实现方案
核心实现逻辑如下:
- 先定位到
folder_One文件夹的完整路径,若该文件夹不存在则先创建 - 筛选该目录下所有名称为纯数字的子文件夹,将名称转为整数后取最大值,作为已有最大序号
- 新文件夹的起始序号为「已有最大序号 + 1」,如果没有符合条件的子文件夹则起始序号为0
- 从起始序号开始批量创建10个连续编号的子文件夹
原代码存在多处问题:未定义
dir_path变量、循环逻辑嵌套错误、缺少数字名称筛选逻辑、语法存在括号缺失问题,无法实现需求。
可直接运行的完整代码
import os path_data = 'Data' word = 'folder_One' folder_length = 10 # 拼接folder_One的完整路径 target_parent_dir = os.path.join(path_data, word) def create_folder(): # 先确保父文件夹存在 os.makedirs(target_parent_dir, exist_ok=True) # 收集所有纯数字命名的子文件夹序号 exist_nums = [] for item in os.listdir(target_parent_dir): item_path = os.path.join(target_parent_dir, item) # 判断是文件夹且名称为纯数字 if os.path.isdir(item_path) and item.isdigit(): exist_nums.append(int(item)) # 计算起始序号 start_num = max(exist_nums) + 1 if exist_nums else 0 # 批量创建10个文件夹 for i in range(folder_length): new_folder_path = os.path.join(target_parent_dir, str(start_num + i)) os.makedirs(new_folder_path, exist_ok=True) # 调用执行 create_folder()
代码说明
- 代码中加了
exist_ok=True参数,避免重复创建已存在的文件夹时报错 - 会自动跳过非数字命名的子文件夹,只根据数字序号顺延
- 若
folder_One下没有子文件夹,会直接创建0-9共10个文件夹;如果已有0-9,会创建10-19,以此类推
内容的提问来源于stack exchange,提问作者mourat
相关产品推荐
相关产品推荐

