我对使用这两个os方法来创建新目录感到困惑。请给予我一些Python的例子。
os
uqxowvwt1#
makedirs()创建所有不存在的中间目录(就像bash中的mkdir -p一样)。mkdir()可以创建单个子目录,如果指定了不存在的中间目录,则会抛出异常。这两种方法都可以用来创建一个“leaf”目录(dirA):
makedirs()
mkdir -p
mkdir()
os.mkdir('dirA')
os.makedirs('dirA')
但是makedirs必须用于创建“分支”:
os.makedirs('dirA/dirB')
mkdir可以在这里工作 * 如果 * dirA已经存在,但如果它不存在,将抛出错误。请注意,与bash中的mkdir -p不同,如果叶子已经存在,则两者都将失败。
mkdir
dirA
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中的方法名称之前键入?,以快速查看文档。例如:
os.makedirs
exist_ok=False
True
os.mkdir
os.makedirs('dirA', exist_ok=True)
?
>>> import os >>> ? os.makedirs
m1m5dgzv3#
makedirs:递归目录创建函数。类似于mkdir(),但使所有中间级目录都包含叶目录。如果叶目录已存在或无法创建,则引发错误异常。
3条答案
按热度按时间uqxowvwt1#
makedirs()
创建所有不存在的中间目录(就像bash中的mkdir -p
一样)。mkdir()
可以创建单个子目录,如果指定了不存在的中间目录,则会抛出异常。这两种方法都可以用来创建一个“leaf”目录(dirA):
os.mkdir('dirA')
os.makedirs('dirA')
但是makedirs必须用于创建“分支”:
os.makedirs('dirA/dirB')
将工作[创建整个结构]mkdir
可以在这里工作 * 如果 *dirA
已经存在,但如果它不存在,将抛出错误。请注意,与bash中的
mkdir -p
不同,如果叶子已经存在,则两者都将失败。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中的方法名称之前键入
?
,以快速查看文档。例如:
m1m5dgzv3#
makedirs:递归目录创建函数。类似于mkdir(),但使所有中间级目录都包含叶目录。如果叶目录已存在或无法创建,则引发错误异常。