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()。
以上是两者的完整区别说明。

浙公网安备 33010602011771号