Python中的p函数
这个问题在这里已经有了答案:
mkdir -p
功能如下:
import errno
import os
def mkdir_p(path):
try:
os.makedirs(path)
except OSError as exc: # Python >2.5
if exc.errno == errno.EEXIST and os.path.isdir(path):
pass
else:
raise
更新
对于os.makedirs
, os.makedirs
有一个可选的第三个参数exist_ok
,如果为true,则启用mkdir -p
功能 - 提供了unless mode
,现有目录具有与预期不同的权限; 在这种情况下, OSError
如前所述。
更新2
对于pathlib.Path.mkdir
,还有pathlib.Path.mkdir
:
import pathlib
pathlib.Path("/tmp/path/to/desired/directory").mkdir(parents=True, exist_ok=True)
exist_ok
参数是在Python 3.5中添加的。
在Python> = 3.2中,就是这样
os.makedirs(path, exist_ok=True)
在早期版本中,使用@ tzot的答案。
这比捕获异常更容易:
import os
if not os.path.exists(...):
os.makedirs(...)
免责声明此方法需要在特定环境/条件下更易受竞争条件影响的两个系统调用。 如果你写的东西比在一个受控环境下运行的简单的一次性脚本更复杂,你最好只用一个系统调用的接受答案。
更新2012-07-27
我很想删除这个答案,但我认为在下面的评论中有价值。 因此,我将它转换为wiki。
链接地址: http://www.djcxy.com/p/9263.html