20

我想运行mkdir命令:

mkdir -p directory_name

在 Python 中执行此操作的方法是什么?

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

5 回答 5

31

你可以试试这个:

# 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
于 2013-04-16T06:08:22.717 回答
21

根据文档,您现在可以从 python 3.2 开始使用它

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

并且目录存在时不会抛出错误。

于 2018-03-22T03:19:11.237 回答
12

像这样的东西:

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

UPD:正如评论中所说,您需要检查线程安全异常

try:
    os.makedirs(directory_name)
except OSError as err:
    if err.errno!=17:
        raise
于 2013-04-16T06:09:07.893 回答
7

如果您正在使用pathlib,请使用Path.mkdir(parents=True, exist_ok=True)

from pathlib import Path

new_directory = Path('./some/nested/directory')
new_directory.mkdir(parents=True, exist_ok=True)

parents=True根据需要创建父目录

exist_ok=True如果目录已经存在,告诉mkdir()不会出错

请参阅pathlib.Path.mkdir()文档

于 2018-09-30T20:41:05.530 回答
-5

how about this os.system('mkdir -p %s' % directory_name )

于 2017-07-21T03:54:04.490 回答