如何在python中使用-p选项运行os.mkdir()?

How to run os.mkdir() with -p option in Python?

我想运行mkdir命令,如下所示:

1
mkdir -p directory_name

在python中,该怎么做?

1
os.mkdir(directory_name [, -p]) didn't work for me.


您可以尝试以下操作:

1
2
3
4
5
6
7
8
9
10
# top of the file
import os
import errno

# the actual code
try:
    os.makedirs(directory_name)
except OSError as exc:
    if exc.errno == errno.EEXIST and os.path.isdir(directory_name):
        pass


像这样:

1
2
if not os.path.exists(directory_name):
    os.makedirs(directory_name)

upd:正如在评论中所说,您需要检查线程安全的异常情况。

1
2
3
4
5
try:
    os.makedirs(directory_name)
except OSError as err:
    if err.errno!=17:
        raise


根据文档,现在可以使用它,因为python 3.2

1
os.makedirs("/directory/to/make", exist_ok=True)

当目录存在时,它不会抛出错误。


如果使用pathlib,可以使用path.mkdir(parents=True, exist_ok=True)

1
2
3
4
5
from pathlib import Path

directory = Path('./some/nested/directory')

direcotry.mkdir(parents=True, exist_ok=True)

parents=True创建您需要的任何父目录,exist_ok=True告诉mkdir()如果目录已经存在,不要出错。见pathlib.Path.mkdir文件。


这个怎么样?
os.system('mkdir -p %s' % directory_name )