我正在尝试将一小部分文本写入(当前)不存在的文件到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用户),也不会向终端打印错误,也不会引发异常;但该文件实际上从未写入目录。
答案 0 :(得分:0)
EACCESS应该是EACCES(从标准的unix C libs派生。)这不会导致你不会看到错误,因为IOERROR会被引发,即使if块没有执行也会重新引发。这听起来像Linux特定的问题。可能是SELinux。
BTW上下文管理器对于避免特定的其他close()很有用。