Python实现:为多级目录树添加指定层级的Aug 2022子目录
实现指定层级的目录创建需求
目标目录结构说明
原有的目录树如下:
\main_folder\subfolder1_level1 \main_folder\subfolder2_level1 \main_folder\subfolder3_level1 \main_folder\subfolder1_level1\subfolder1_level2 \main_folder\subfolder1_level1\subfolder1_level2\Jul 2022 \main_folder\subfolder1_level1\subfolder1_level2\Jun 2022 \main_folder\subfolder2_level1\Jul 2022 \main_folder\subfolder2_level1\Jun 2022 \main_folder\subfolder3_level1\subfolder3_level2 \main_folder\subfolder3_level1\subfolder3_level2\subfolder3_level3 \main_folder\subfolder3_level1\subfolder3_level2\subfolder3_level3\Jul 2022 \main_folder\subfolder3_level1\subfolder3_level2\subfolder3_level3\Jun 2022
需要新增的Aug 2022目录位置:
- 嵌套在
\main_folder\subfolder1_level1\subfolder1_level2下 - 嵌套在
\main_folder\subfolder2_level1下 - 嵌套在
\main_folder\subfolder3_level1\subfolder3_level2\subfolder3_level3下
Python实现代码
方案一:使用现代的pathlib模块(Python 3.4+)
from pathlib import Path # 定义所有需要创建的目标路径 target_dirs = [ Path("main_folder/subfolder1_level1/subfolder1_level2/Aug 2022"), Path("main_folder/subfolder2_level1/Aug 2022"), Path("main_folder/subfolder3_level1/subfolder3_level2/subfolder3_level3/Aug 2022") ] for dir_path in target_dirs: # parents=True:自动创建不存在的父目录 # exist_ok=True:目录已存在时不抛出异常 dir_path.mkdir(parents=True, exist_ok=True) print(f"目录已创建或已存在:{dir_path.resolve()}")
方案二:使用兼容范围更广的os模块
import os # 定义所有需要创建的目标路径 target_dirs = [ "main_folder/subfolder1_level1/subfolder1_level2/Aug 2022", "main_folder/subfolder2_level1/Aug 2022", "main_folder/subfolder3_level1/subfolder3_level2/subfolder3_level3/Aug 2022" ] for dir_path in target_dirs: # exist_ok=True 需Python 3.2+支持;若用Python 2,可手动判断目录是否存在后再创建 os.makedirs(dir_path, exist_ok=True) print(f"目录已创建或已存在:{os.path.abspath(dir_path)}")
代码说明
- 递归创建:通过
parents=True(pathlib)或os.makedirs的默认递归特性,自动生成所有不存在的父目录,无需手动逐层创建 - 容错处理:
exist_ok=True避免因目标目录已存在而触发报错,让代码更健壮 - 绝对路径输出:方便快速确认目录的实际创建位置
内容的提问来源于stack exchange,提问作者Alan H
相关产品推荐
相关产品推荐

