Как запустить ОС.mkdir () с опцией-p в Python?
Я хочу бежать mkdir
команда as:
mkdir -p directory_name
каков метод для этого в Python?
os.mkdir(directory_name [, -p]) didn't work for me.
5 ответов
вы можете попробовать это:
# 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
что-то вроде этого:
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
по словам документация, Теперь вы можете использовать это с python 3.2
os.makedirs("/directory/to/make", exist_ok=True)
и он не будет выдавать ошибку, когда каталог существует.
можно сделать path.mkdir(parents=True, exist_ok=True)
Если вы используете pathlib
.
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
docs.