文件写入尝试无声失败 - 权限问题
我正在尝试把一小段文字写入一个还不存在的文件,这个文件位于一个由根用户和根组拥有的目录里。我查看了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()
当我运行这段代码时(即使是以根用户身份),终端没有打印出任何错误,也没有抛出异常;但是文件实际上并没有被写入到目录中。
1 个回答
0
EACCESS应该是EACCES,这个是从标准的Unix C库来的。不过这并不会导致你看不到错误,因为IOERROR会被抛出,即使if语句的代码块没有执行,你还是会重新抛出这个错误。这听起来像是一个Linux特有的问题,可能是SELinux引起的。
顺便提一下,使用上下文管理器会很有用,这样就可以避免特定的else关闭操作。