推荐使用 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可避免“文件夹已存在”报错
示例:
ECTouch是上海商创网络科技有限公司推出的一套基于 PHP 和 MySQL 数据库构建的开源且易于使用的移动商城网店系统!应用于各种服务器平台的高效、快速和易于管理的网店解决方案,采用稳定的MVC框架开发,完美对接ecshop系统与模板堂众多模板,为中小企业提供最佳的移动电商解决方案。ECTouch程序源代码完全无加密。安装时只需将已集成的文件夹放进指定位置,通过浏览器访问一键安装,无需对已有
import os
os.makedirs("data/logs", exist_ok=True) # 创建 data/logs 及其父目录
用 pathlib 创建文件夹(推荐,Python 3.4+)
pathlib 是现代 Python 的标准路径操作模块,语法更直观、面向对象。
立即学习“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) # ✅ 安全可靠










