← Все вопросы
Как создать папку, только если её ещё нет, без ошибки?
10
Делаю os.mkdir('output'), но если папка уже существует, падает FileExistsError. А если родительской папки нет — вообще не создаётся. Как создать каталог тихо и надёжно?
2 ответа
18
Используй os.makedirs с exist_ok=True — он создаст и промежуточные папки, и не упадёт, если каталог уже есть:
import os
os.makedirs('output/2026/logs', exist_ok=True)
Разница с mkdir: mkdir создаёт ровно одну папку и ругается, если родителя нет; makedirs делает всю цепочку. exist_ok=True глушит FileExistsError. На pathlib то же самое: Path('output/logs').mkdir(parents=True, exist_ok=True).
Алескей Кора exist_ok=True появился ещё в 3.2, везде уже есть · 20 месяцев назад
5
os.makedirs(path, exist_ok=True).
Ваш ответ
Войдите, чтобы ответить на вопрос.