Попытка записи файла молча завершается неудачей - проблема с разрешениями - PullRequest
3 голосов
/ 17 августа 2011

Я пытаюсь записать небольшую часть текста в (пока что) несуществующий файл в каталог, принадлежащий пользователю root и группе.Я взглянул на документы Python относительно проверки, имеет ли пользователь права для записи файлов - приведенный ниже код отражает пример документа.

try:
    out = open('/owned/by/root/somefile.txt', 'w')
except IOError as e:
    if e.errno == errno.EACCESS:
        print('Cannot write file due to permission error')
    raise
else:
    out.write('Some text content here')
    out.close()

После запуска этого кода (даже в качестве пользователя root) на терминал не выводится никаких ошибок и не возникает никаких исключений;тем не менее, файл никогда не записывается в каталог.

1 Ответ

0 голосов
/ 24 августа 2011

EACCESS должен быть EACCES (производным от стандартных библиотек Unix C.) Это не приведет к тому, что вы не увидите ошибку, поскольку IOERROR будет повышаться, а вы будете повторно поднимать, даже если блок if не выполняется,Это звучит как специфическая проблема Linux.Вероятно, SELinux.

Кстати, контекстный менеджер был бы полезен, чтобы избежать специфического else close ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...