Bit*_*rex 6 python file-handling python-3.x
我知道在Python中该file.close()
方法没有任何返回值,但我找不到任何关于在某些情况下它是否会抛出异常的信息.如果它也没有这样做,那么我想这个问题的第二部分是多余的.
如果确实如此,那么处理该file.close()
方法的"正确"方法是什么?在用于打开文件的"with"语句中抛出异常?
是否存在file.close()
文件打开并成功读取后立即失败的情况?
是的,file.close()
可以抛出IOError
异常.例如,当文件系统使用配额时,可能会发生这种情况.请参阅C close()
函数手册页:
不检查返回值
close()
是一个常见但严重的编程错误.很可能write(2)
在最后一次报告先前操作的错误close()
.关闭文件时不检查返回值可能会导致数据无声丢失.使用NFS和磁盘配额尤其可以观察到这种情况.
C close()
函数的非零返回值导致Python引发IOError
异常.
如果您想处理此异常,请在语句周围添加一个try...except
块:with
try:
with open(filename, mode) as fileobj:
# do something with the open file object
except IOError as exc:
# handle the exception
Run Code Online (Sandbox Code Playgroud)
当然,IOError
也可能在开放期间抛出.
归档时间: |
|
查看次数: |
3113 次 |
最近记录: |