Python WindowsLinuxmacOSPython 3

Python: Python показывает PermissionError при создании файла

  • Обновлено
  • Чтение ≈ 3 минуты

Краткий ответ

PermissionError при создании файла означает, что процессу не разрешено записывать в выбранное место или операция запрещена политикой доступа; повышать права на всю папку обычно не требуется.

В этой статье
  1. Что произошло и когда проявляется ошибка
  2. Причины и диагностические признаки
  3. Подробная пошаговая диагностика и исправление
  4. Как проверить, что проблема устранена
  5. Если исправление не помогло

#Что произошло и когда проявляется ошибка

PermissionError при создании файла означает, что процессу не разрешено записывать в выбранное место или операция запрещена политикой доступа; повышать права на всю папку обычно не требуется.

#Причины и диагностические признаки

Возможная причинаКак узнатьЧто делать
Запись в защищённый каталогУ пользователя отсутствует право записи.Ошибка указывает на /etc, Program Files, системный кореньВыбрать пользовательский или выделенный каталог данных.
Путь указывает на каталог либо занятОперационная система отвергает попытку открыть каталог как файл.В имени файла пропущено расширение или вместо файла задана папкаПроверить is_dir и целевой путь.
Ограничение службы и точки монтированияВладелец процесса, ACL, защищённые каталоги или read-only mount отличаются.Вручную работает, в службе или контейнере ошибкаДиагностировать права конкретного процесса и тома.

#Подробная пошаговая диагностика и исправление

  1. 1. Посмотрите точный путь в исключенииЗапустите скрипт в обычном терминале из рабочей папки и найдите PermissionError: [Errno 13] Permission denied: .... Скопируйте только путь без персональных данных. Убедитесь, что это ожидаемая папка вывода, а не случайный путь относительно другого рабочего каталога.
  1. 2. Проверьте целевую папку без перезаписи данныхСоздайте временный check_path.py в рабочей папке и укажите каталог назначения. Программа только показывает абсолютный путь, наличие, тип и родительский каталог, ничего не удаляет.
  2. Пример кода по теме
    Python
    Образец кода для файла .py в тестовой копии проекта; перед внедрением замените имена файлов на реальные.
    from pathlib import Path
    p = Path("output/result.txt").resolve()
    print("Путь:", p)
    print("Родитель существует:", p.parent.exists())
    print("Это каталог:", p.is_dir())
  1. 3. Выберите папку данных пользователяДля локального скрипта попробуйте Path.home()/"Documents"/"my-script" при существующем Documents либо Path.home()/"my-script". Создайте новую папку с mkdir(parents=True, exist_ok=True) и запишите пробный файл с новым именем. Это изменяет только ваш пользовательский каталог.
  2. Режим x не перезапишет существующий файл; при повторном тесте задайте другое имя
    Python
    Режим x не перезапишет существующий файл; при повторном тесте задайте другое имя.
    from pathlib import Path
    folder = Path.home() / "my-script"
    folder.mkdir(parents=True, exist_ok=True)
    probe = folder / "write-test.txt"
    with probe.open("x", encoding="utf-8") as f:
        f.write("проверка\n")
    print(probe)
  1. 4. Для службы выясните пользователя и права именно папкиЕсли скрипт запускается службой, сначала выясните учётную запись процесса в диспетчере служб Windows или параметре User= systemd. Проверьте, что именно этой учётной записи доступна папка вывода. Для владельца проекта создайте выделенную директорию данных; не используйте chmod 777, массовый chown или запуск службы от root ради проверки.
  1. 5. Верните рабочий путь в конфигурацию и перепроверьтеПосле успешного пробного файла измените путь сохранения в настройке приложения на выделенный каталог. Выполните одну обычную запись и откройте полученный файл. Пробный файл можно удалить вручную после проверки при уверенности, что он не нужен.

#Как проверить, что проблема устранена

В рабочей среде создаётся новый файл в выделенной папке и содержимое открывается без PermissionError.

#Если исправление не помогло

Если даже домашняя папка недоступна, проверьте свободное место, права, доступность сетевой папки, антивирус и ограничения контейнера; передавайте администратору точный путь и учётную запись, не требуйте глобальных прав.

Источники и обновления

Последнее обновление статьи: 2 ноября 2026. Версии программ и интерфейсы меняются — если шаги не совпадают с вашей версией, сверяйтесь с документацией производителя.