文件写入尝试无声地失败 - 权限问题

时间:2011-08-17 10:10:59

标签: python file

我正在尝试将一小部分文本写入(当前)不存在的文件到root用户和组所拥有的目录。我已经看过Python文档regarding checking if a user is authorised来编写文件 - 下面的代码反映了doc示例。

这是令人讨厌的代码:

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 :(得分:0)

EACCESS应该是EACCES(从标准的unix C libs派生。)这不会导致你不会看到错误,因为IOERROR会被引发,即使if块没有执行也会重新引发。这听起来像Linux特定的问题。可能是SELinux。

BTW上下文管理器对于避免特定的其他close()很有用。