78

我很困惑使用这两种os方法来创建新目录。

请给我一些Python的例子。

4

2 回答 2

130

makedirs() 如果它们不存在,则创建所有中间目录(就像mkdir -p在 bash 中一样)。

mkdir()可以创建单个子目录,如果指定了不存在的中间目录,则会抛出异常。

两者都可用于创建单个“叶”目录 (dirA):

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

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

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

mkdir如果 已经存在,则可以在这里工作dirA,但如果不存在,则会引发错误。

请注意,与mkdir -pbash 不同,如果叶子已经存在,则两者都将失败。

于 2012-12-11T11:38:03.460 回答
28

(不能评论,只是添加到 NPE 的答案。)

在 Python3 中,os.makedirs有一个默认参数exist_ok=False
如果将其设置为True,则如果叶子存在,则不会os.makedirs抛出任何异常。 (虽然没有这个参数。)
os.mkdir

像这样:

os.makedirs('dirA', exist_ok=True)

PS
您可以?在 IPython shell 中的方法名称前键入以快速查看文档。
例如:

>>> import os
>>> ? os.makedirs
于 2016-02-04T05:21:21.603 回答