Подтвердить что ты не робот

Что отличается между makedirs и mkdir of os?

Я смущен, чтобы использовать эти два метода os для создания нового каталога.

Пожалуйста, дайте мне пример на Python.

4b9b3361

Ответ 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.