Почему бы не использовать модуль подпроцесса, если он работает на компьютере, который поддерживает команду
mkdir
с опцией -p
?
Работает на Python 2.7 и Python 3.6
from subprocess import call
call(['mkdir', '-p', 'path1/path2/path3'])
Должен справиться с задачей на большинстве систем.
В ситуациях, когда переносимость не имеет значения (например, с помощью Docker), решение состоит из двух строк. Вам также не нужно добавлять логику, чтобы проверить, существуют ли каталоги или нет. И, наконец, безопасно перезапускать без каких-либо побочных эффектов
Если вам нужна обработка ошибок:
from subprocess import check_call
try:
check_call(['mkdir', '-p', 'path1/path2/path3'])
except:
handle...