如何用python创建文件夹

推荐使用 os.makedirs() 或 pathlib.Path.mkdir() 创建文件夹:前者兼容 Python 2.7+,后者为 Python 3.4+ 现代写法;均支持 parents=True 递归建目录、exist_ok=True 避免已存在报错;避免先判断再创建的竞态风险。

用 Python 创建文件夹很简单,最常用、最推荐的方式是使用 os.makedirs()pathlib.Path.mkdir(),它们都能自动处理多级目录和已存在路径的问题。

用 os.makedirs() 创建文件夹(兼容旧版本)

适用于 Python 2.7+ 和所有 Python 3.x 版本,支持递归创建多级目录。

  • 如果父目录不存在,os.makedirs() 会一并创建
  • 加参数 exist_ok=True 可避免“文件夹已存在”报错

示例:

import os
os.makedirs("data/logs", exist_ok=True)  # 创建 data/logs 及其父目录

用 pathlib 创建文件夹(推荐,Python 3.4+)

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)  # ✅ 安全可靠