如何使用Python在单个文件夹中创建多个文件夹?
在单个文件夹中批量创建多个文件夹的正确方法
原代码存在的问题
- 第二次调用
os.makedirs(path)时,path变量未更新,仍指向第一次创建的路径,会重复尝试创建同一目录 - 代码采用硬编码方式逐个写路径,无法高效批量创建多个文件夹,扩展性差
方案1:在同一父文件夹下创建多个子文件夹
适合在指定目录下直接生成多个平级文件夹:
import os def create_multiple_folders(folder_names, root="."): for name in folder_names: # 用os.path.join适配不同系统的路径分隔符 folder_path = os.path.join(root, name) # exist_ok=True避免文件夹已存在时报错 os.makedirs(folder_path, exist_ok=True) print(f"已创建文件夹:{folder_path}") # 填写要创建的所有文件夹名称 folders_to_create = ["A", "B", "C"] create_multiple_folders(folders_to_create)
方案2:创建多个不同嵌套结构的文件夹
如果需要生成如./A/A1/A2、./B/A/B/c这类不同层级的嵌套文件夹:
import os def create_multiple_nested_folders(paths, root="."): for path in paths: full_path = os.path.join(root, path) os.makedirs(full_path, exist_ok=True) print(f"已创建文件夹:{full_path}") # 填写所有要创建的嵌套路径 nested_paths = [ "A/A1/A2", "B/A/B/c" ] create_multiple_nested_folders(nested_paths)
关键注意点
- 优先使用
os.path.join()拼接路径,避免直接用字符串拼接导致的跨系统兼容性问题 - 添加
exist_ok=True参数,可跳过已存在的文件夹,防止运行报错 - 通过列表批量传入目标路径/文件夹名,代码更简洁易维护
内容的提问来源于stack exchange,提问作者Rishi Singh
相关产品推荐
相关产品推荐

