"OSError: [Errno 13] Permission denied" 的 try except 错误处理以及写入日志文件。

3
try:
  os.remove('/usr/local/logs/mylog.log')
except Exception as e:
  log.error('Error: %s') %e.message

运行上述代码时,提示窗口显示OSError: [Errno 13] Permission denied错误,并且此错误没有被记录。我需要将其记录下来,而不是在提示窗口显示出来。
有什么建议吗?谢谢!我正在使用Python 2.6.6。

2
它说“权限被拒绝”,意思是“权限被拒绝”。更改文件访问权限或以另一个用户身份执行您的脚本。 - starrify
我需要将错误记录下来,但是我无法通过“except”捕获错误。有什么建议吗...!!! - onlyvinish
等一下..我无法重现你的问题。在我的笔记本电脑上,异常已按预期处理.. - starrify
在调用 log.error() 之前立即添加一个 print 语句。如果你看到它,那么触发异常的不是 os.remove(),你需要在其他地方寻找原因。 - Crowman
@starrify 请尝试移除受限制访问用户的系统文件。 - onlyvinish
显示剩余2条评论
2个回答

0

您正在尝试删除文件/usr/local/logs/mylog.log,这很可能需要sudo权限。因此,请使用sudo python script.py运行您的脚本,它应该可以正常工作。

正如error所说,您当前的用户没有删除该文件的权限。


是的,谢谢,但您有没有通过except和日志记录来处理此错误的建议。 - onlyvinish
@onlyvinish 之前错过了,但是应该是 log.error('Error: %s' %e.message) 而不是 log.error('Error: %s') %e.message,对吧? - Anshul Goyal
我尝试了相同的方法,但是仍然没有为此创建日志。 :( - onlyvinish

0

你的问题不仅在于删除文件,很可能也是因为你的脚本没有写入日志文件的权限,这就是为什么它没有被记录下来,也是为什么 OSError 没有被捕获的原因。


不,我有写日志的权限,问题也不在这里,我的异常处理在这里不够有效。那我应该怎么做呢? - onlyvinish

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接