Python как создавать папку?
вот такая ошибка когда сохраняю отчёт в 2 вложенные папки которых ещё нет, помогите создать их перед сохранением. Пробовал mkdir, полный путь, повторный запуск
Ваш вопрос
вот такая ошибка когда сохраняю отчёт в 2 вложенные папки которых ещё нет, помогите создать их перед сохранением. Пробовал mkdir, полный путь, повторный запуск
Перед сохранением создайте каталог назначения: folder.mkdir(parents=True, exist_ok=True), где folder является объектом Path. Параметр parents отвечает за отсутствующие промежуточные папки, а exist_ok позволяет не считать уже существующий каталог ошибкой. Эти параметры не отменяют отсутствие прав и не заменяют файл папкой. Если путь взят из имени будущего отчёта, создавайте его родителя через report_path.parent.mkdir(...), а не каталог с именем самого файла. Проверьте абсолютное расположение перед записью: относительный путь отсчитывается от текущего рабочего каталога, который может отличаться от папки скрипта. При обработке ошибки сохраняйте её тип и путь, чтобы отличить неверное расположение от запрета доступа.
Создание вложенных каталогов
Импортируйте Path из pathlib и создайте объект для папки назначения. Вызов folder.mkdir(parents=True, exist_ok=True) подходит для ситуации, когда отсутствует несколько уровней каталогов. Без parents=True создание последней папки завершится ошибкой, если её родитель ещё не существует.
Повторный запуск
Параметр exist_ok=True разрешает случай, когда каталог уже создан. Это удобно для программы, которая сохраняет отчёты несколько раз в одну папку. При этом параметр не превращает любой конфликт в успех. Если на месте предполагаемого каталога находится обычный файл, ошибка сохранится. Её нужно разобрать отдельно, не удаляя найденный файл автоматически.
Папка и будущий файл
Если у вас уже есть полный путь к отчёту, например report_path = Path('reports/2026/result.csv'), создавайте report_path.parent. Вызов mkdir на самом report_path создаст каталог с именем result.csv, а затем обычная запись файла по этому пути не получится. Расширение в имени само по себе не определяет тип объекта.
Где появится результат
Относительный путь зависит от рабочего каталога процесса. Запуск из редактора, терминала или другой программы может давать разную основу для такого пути. Выведите Path.cwd() и проверьте вычисленное расположение. Когда место сохранения задано пользователем явно, используйте этот каталог как основу.
После успешного создания папки сохраняйте отчёт отдельной операцией и обрабатывайте её ошибки. Возможность создать каталог ещё не гарантирует успешную запись большого файла: могут закончиться место на диске или доступ к сетевому ресурсу. Сообщение о готовом отчёте выводите только после завершения записи.
Пока нет премиум-вопросов в подборке
Не нашли то, что искали?
Задайте свой вопрос
Лучший ответ
4o-mini
4o-mini
Python как создавать папку?
Используйте
Path.mkdirс созданием родителей:parents=Trueсоздаёт недостающие промежуточные папки, аexist_ok=Trueдопускает повторный запуск, если каталог уже существует. Путь здесь относительный, поэтому папка появится относительно текущего рабочего каталога. Если по этому пути уже лежит обычный файл, операция всё равно завершится ошибкой.