Python中os.mkdir() 和 os.makedirs()有什么不同

在Python中,我们通过程序生成的文件为了方便查看,通常要放在指定的目录里,如果运行程序时目录不存在怎么办,为了避免这个问题,我们就要在目录路径不存在时就建立一个路径,这时就要用到os模块了。

其中os.mkdir() 和 os.makedirs() 都是os中常用的方法,可以用来创建目录,但它们在处理嵌套目录时有所不同:

1. os.mkdir()详解

仅用于创建指定路径中的单个目录,不能处理中间不存在的目录,否则会报错

如果指定的路径中有不存在的上级目录,则会抛出 OSError错误。

示例:

python 复制代码
import os 
os.mkdir("folder")  # 创建一个名为 "folder" 的目录 
os.mkdir("parent/folder")  # 如果 "parent" 目录不存在,会抛出错误 

2. os.makedirs() 详解

用于创建指定路径中的所有目录,包括必要的中间目录。

如果 exist_ok=True,则在目录已存在时不会抛出错误;如果是 False,则目录已存在时会抛出错误。

当然我们也可以用它来创建单个目录,不管路径存在不在都不会报错。

python 复制代码
 os.makedirs("text",exist_ok=True)

示例:

python 复制代码
import os 
os.makedirs("parent/folder")  # 会创建 "parent" 和 "folder" 两个目录 
os.makedirs("parent/folder", exist_ok=True)  # 如果目录已存在,不会有任何操作 

3. 学后总结

当只需创建一个单一目录时,使用 os.mkdir()。

当需要创建嵌套目录或确保所有上级目录都存在时,使用 os.makedirs()。

为了减少程序报错建议使用os.makedirs(),代码量少,而且也减少了报错,更加pythonic。

相关推荐
默_笙2 天前
🍙 给每个请求过安检:FastAPI 是怎么把校验写进类型注解的
python
小羊没烦恼!2 天前
初探性能优化——2个月到4小时的性能提升
java·开发语言·windows·算法·c#
qq_426003962 天前
启动playwright录制codegen生成自动化测试脚本
python·自动化
虎头金猫2 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
长沙三为智能科技2 天前
家政小程序开发从0到上线:五阶段交付流程与验收清单
python
伞伞悦读3 天前
【第38期】Python 模块与包详解:import、from、模块搜索路径、包结构和 __init__
开发语言·python
只睡四小时3 天前
Canvas 弹道联机实战:700 行 + 固定时间步长
python·websocket·html5·游戏开发·canvas
C语言小火车3 天前
C/C++ 为什么需要编译器?
开发语言·c++
奇思妙想聪明勤奋的小羊3 天前
DeepAgents第5章:子Agent 与上下文隔离—让 Agent学会委派
人工智能·python·学习·语言模型
lpfasd1233 天前
2026年第38周GitHub趋势周报
python·科技·github