python 操作系统的makedirs和mkdir有什么区别?

vfh0ocws  于 2023-09-29  发布在  Python
关注(0)|答案(3)|浏览(135)

我对使用这两个os方法来创建新目录感到困惑。
请给予我一些Python的例子。

uqxowvwt

uqxowvwt1#

makedirs()创建所有不存在的中间目录(就像bash中的mkdir -p一样)。
mkdir()可以创建单个子目录,如果指定了不存在的中间目录,则会抛出异常。
这两种方法都可以用来创建一个“leaf”目录(dirA):

  • os.mkdir('dirA')
  • os.makedirs('dirA')

但是makedirs必须用于创建“分支”:

  • os.makedirs('dirA/dirB')将工作[创建整个结构]

mkdir可以在这里工作 * 如果 * dirA已经存在,但如果它不存在,将抛出错误。
请注意,与bash中的mkdir -p不同,如果叶子已经存在,则两者都将失败。

mftmpeh8

mftmpeh82#

(Can不做评论,只是添加到NPE的答案。)
在Python 3中,os.makedirs有一个默认参数exist_ok=False
如果你将它设置为True,那么如果叶子存在,os.makedirs抛出任何异常。
(而os.mkdir没有此参数。
就像这样:
os.makedirs('dirA', exist_ok=True)
P.S.
您可以在IPython shell中的方法名称之前键入?,以快速查看文档。
例如:

>>> import os
>>> ? os.makedirs
m1m5dgzv

m1m5dgzv3#

makedirs:递归目录创建函数。类似于mkdir(),但使所有中间级目录都包含叶目录。如果叶目录已存在或无法创建,则引发错误异常。

相关问题