Python中 创建文件目录时,os.mkdir vs os.makedirs 的区别,一文详解!

os.mkdir vs os.makedirs 的区别

Python 中 os.mkdir()os.makedirs()
都能创建目录,但它们之间有重要区别:


1. 创建单个目录 vs 递归创建目录

os.mkdir(path)

  • 只能创建 单个目录
  • 若父目录不存在,会报错:FileNotFoundError

示例:

os.mkdir("a/b/c")  # ❌ 若 a 或 b 不存在,则报错

os.makedirs(path, exist_ok=True/False)

  • 递归创建多级目录
  • 即:a/b/c 如果任何一级不存在,会自动全部创建。

示例:

os.makedirs("a/b/c")  # ✔ 自动创建所有父目录

2. exist_ok 参数

os.mkdir() 无 exist_ok 参数

  • 若目录已存在,直接报错:FileExistsError

os.makedirs(exist_ok=True)

  • 若目录已存在,不报错,直接跳过。
  • 若设置 exist_ok=False(默认),目录已存在会报错。

3. 总结对比表

功能点 os.mkdir os.makedirs
递归创建父目录 ❌ 不支持 ✔ 支持
已存在目录不报错 ❌ 不支持 ✔ 支持(exist_ok=True)
默认行为 创建单层目录 创建多层目录
使用场景 目标目录的父目录一定存在 父目录可能不存在,更灵活

4. 最佳实践建议

  • 若你不确定父目录是否存在 ------ 永远用
    os.makedirs(path, exist_ok=True)
  • 若你确定父目录存在且只需要创建单层 ------ 用 os.mkdir()

以上是两者的完整区别说明。

posted @ 2025-12-09 10:28  AlphaGeek  阅读(181)  评论(0)    收藏  举报