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。

相关推荐
CRMEB系统商城14 分钟前
家电零售的供应商协同与物流提效
java·开发语言·人工智能·小程序·1024程序员节
王大师王文峰28 分钟前
Java+AI 面试题(二):业务场景设计 10 例【客服机器人、合同审查、Text2SQL、告警降噪、成本优化】场景题答法与追问链路
java·开发语言·人工智能
言乐636 分钟前
Python实现三轴联动根据数据自动打磨镜片模型
开发语言·python
万化冥合43 分钟前
如何批量把 PPT 转成视频?
python·1024程序员节
CHHH_HHH1 小时前
【Linux网络篇】初识网络与Socket编程基础
linux·服务器·c语言·开发语言·网络·后端·1024程序员节
xiangjiaodalishi1 小时前
武汉玖叁鹿科技:我们把 GEO 服务做成了可以审计的交付工程
python·1024程序员节
jimy11 小时前
C++ 中 xvalue 的 identity 存在哪里?和 lvalue 的 identity 有什么区别?
开发语言·c++·1024程序员节
yujunl1 小时前
U9 无授权的模式WebAPI开发的总结
开发语言·1024程序员节
zzu123zsw1 小时前
为什么 Python 做 Agent 总在并发中崩溃?拆解 Blockcell 在 Rust 下的 Host-Cell 隔离与自愈状态机
开发语言·python·rust·大模型·ai agent
jiangliushi61 小时前
GPT-6.1 Sol 免费用:Python 读文件报 ‘gbk‘ codec can‘t decode?加一个参数就好
python·编码·1024程序员节