← Все вопросы

Как создать папку, только если её ещё нет, без ошибки?

Задан 20 месяцев назад635 просмотров2 ответа
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).

Ваш ответ

Войдите, чтобы ответить на вопрос.
Поддержать проект