【发布时间】:2012-11-28 23:03:57
【问题描述】:
我很困惑使用这两个os方法来创建新目录。
请给我一些 Python 的例子。
【问题讨论】:
-
documentation for
os.makedirs()解释了差异。你读了吗?
标签: python linux python-2.7
我很困惑使用这两个os方法来创建新目录。
请给我一些 Python 的例子。
【问题讨论】:
os.makedirs() 解释了差异。你读了吗?
标签: python linux python-2.7
makedirs()creates all the intermediate directories 如果它们不存在(就像 bash 中的 mkdir -p)。
mkdir() 可以创建单个子目录,如果指定了不存在的中间目录会抛出异常。
两者都可用于创建单个“叶”目录 (dirA):
os.mkdir('dirA')os.makedirs('dirA')但必须使用 makedirs 来创建“分支”:
os.makedirs('dirA/dirB') 将起作用[整个结构已创建]mkdir 可以在这里工作 如果 dirA 已经存在,但如果不存在则会抛出错误。
请注意,与 bash 中的 mkdir -p 不同,如果叶子已经存在,则两者都会失败。
【讨论】:
os.makedirs()会在目录已经存在时抛出异常,所以它不像mkdir -p
(不能评论,只是添加到NPE的答案中。)
在 Python3 中,os.makedirs 有一个默认参数 exist_ok=False。
如果您将其设置为 True,那么如果叶子存在,os.makedirs 将不会抛出任何异常。
(而os.mkdir 没有这个参数。)
就像这样:
os.makedirs('dirA', exist_ok=True)
附言
您可以在 IPython shell 中的方法名称前键入 ? 以快速查看文档。
例如:
>>> import os
>>> ? os.makedirs
【讨论】: