Что отличается между makedirs и mkdir of os?
Я смущен, чтобы использовать эти два метода os
для создания нового каталога.
Пожалуйста, дайте мне пример на Python.
Ответы
Ответ 1
makedirs()
создает все промежуточные каталоги, если они не существуют (как и mkdir -p
в bash).
mkdir()
может создать отдельный подкаталог и будет генерировать исключение, если указаны промежуточные каталоги, которые не существуют.
Любой может быть использован для создания одного каталога "leaf" (dirA):
-
os.mkdir('dirA')
-
os.makedirs('dirA')
Но makedirs должны использоваться для создания "ветвей":
-
os.makedirs('dirA/dirB')
будет работать [вся структура создана]
mkdir
может работать здесь, если dirA
уже существует, но если он не выдает ошибку.
Обратите внимание, что в отличие от mkdir -p
в bash либо произойдет сбой, если лист уже существует.
Ответ 2
(Не могу комментировать, просто добавьте ответ NPE.)
В Python3 os.makedirs
имеет параметр по умолчанию exist_ok=False
.
Если вы установите его на True
, то os.makedirs
будет не выбрасывать любое исключение, если лист существует.
(Пока os.mkdir
не имеет этого параметра.)
Точно так же:
os.makedirs('dirA', exist_ok=True)
P.S.
Вы можете ввести ?
перед именем метода в оболочке IPython, чтобы быстро просмотреть документацию.
например:.
>>> import os
>>> ? os.makedirs
Ответ 3
os.makedirs - это функция Python,
mkdir - это функция bash unix.