推荐使用 os.makedirs() 或 pathlib.Path.mkdir() 创建文件夹:前者兼容 Python 2.7+,后者为 Python 3.4+ 现代写法;均支持 parents=True 递归建目录、exist_ok=True 避免已存在报错;避免先判断再创建的竞态风险。
用 Python 创建文件夹很简单,最常用、最推荐的方式是使用 os.makedirs() 或 pathlib.Path.mkdir(),它们都能自动处理多级目录和已存在路径的问题。
适用于 Python 2.7+ 和所有 Python 3.x 版本,支持递归创建多级目录。
os.makedirs() 会一并创建exist_ok=True 可避免“文件夹已存在”报错示例:
import os
os.makedirs("data/logs", exist_ok=True) # 创建 data/logs 及其父目录
pathlib 是现代 Python 的标准路径操作模块,语法更直观、面向对象。
Path.mkdir(parents=True, exist_ok=True) 等效于 os.makedirs()
示例:
from pathlib import Path
Path("output/reports/q3").mkdir(parents=True, exist_ok=True)
如果明确知道父目录一定存在,只想建当前一层,可用 os.mkdir() 或 Path.mkdir(parents=False)。
os.mkdir() 会报 FileNotFoundError
parents=True 时,Path.mkdir() 行为同上示例:
import os
os.mkdir("temp") # 要求当前目录下能直接创建 temp
或
from pathlib import Path
Path("temp").mkdir() # 同样要求父目录存在
不建议先用 os.path.exists() 判断再创建——因为判断和创建之间可能被其他进程修改,导致出错。应直接用 exist_ok=True 让系统处理更安全。
错误写法(避免):
if not os.path.exists("myfolder"):
os.mkdir("myfolder") # ⚠️ 有并发风险
正确写法(用 exist_ok=True)
:
os.makedirs("myfolder", exist_ok=True) # ✅ 安全可靠