【python】os.mkdir() 和 os.makedirs()区别
1. os.mkdir(path)
作用:只能创建单层目录。
如果要创建的目录的父目录不存在,会报错。
示例:
import os# 假设当前目录是 /home/user/project
os.mkdir("test1") # ✅ 成功,在当前目录下创建 test1
os.mkdir("a/b/c") # ❌ 报错,因为 a/ 和 a/b/ 不存在
报错信息:
FileNotFoundError: [Errno 2] No such file or directory: 'a/b/c'
2. os.makedirs(path, exist_ok=False)
作用:可以递归地创建多层目录。
如果中间目录不存在,会自动帮你创建。
参数
exist_ok=True
表示:如果目录已存在,不报错。
示例:
import osos.makedirs("a/b/c") # ✅ 成功,会自动创建 a/、a/b/、a/b/c
os.makedirs("a/b/c", exist_ok=True) # ✅ 已存在也不会报错
3. 对比总结
函数 | 特点 | 示例 |
---|---|---|
os.mkdir(path) | 只能创建单层目录,父目录必须已存在,否则报错 | os.mkdir("test") ✅os.mkdir("a/b/c") ❌ |
os.makedirs(path) | 可创建多层目录,父目录不存在时会自动创建 | os.makedirs("a/b/c") ✅ |
✅ 结论:
如果只需要创建单个目录 →
os.mkdir()
如果可能需要创建多级目录 →
os.makedirs()
(更常用)