os.mkdir(directory_name [, -p]) didn't work for me.
Ответ 1
Вы можете попробовать следующее:
# 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
Ответ 2
Что-то вроде этого:
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
Ответ 3
Согласно документации, теперь вы можете использовать это с python 3.2
os.makedirs("/directory/to/make", exist_ok=True)
и он не выдаст ошибку, когда каталог существует.
Ответ 4
Если вы используете 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)
parent parents=True создает родительские каталоги по мере необходимости
exist_ok=True говорит mkdir() не exist_ok=True ошибку, если каталог уже существует