【发布时间】:2023-03-23 10:15:02
【问题描述】:
我正在使用open 在 Python 中打开一个文件。我将文件处理封装在 with 语句中,如下所示:
with open(path, 'r') as f:
# do something with f
# this part might throw an exception
这样我可以确定我的文件已关闭,即使引发了异常。
但是,我想处理打开文件失败的情况(抛出OSError)。
一种方法是将整个with 块放在try: 中。只要文件处理代码不抛出 OSError,它就可以工作。
它可能看起来像:
try:
with open(path, 'rb') as f:
except:
#error handling
# Do something with the file
这当然行不通,而且真的很丑。有没有一种聪明的方法来做到这一点?
谢谢
PS:我使用的是 python 3.3
【问题讨论】:
标签: python python-3.x contextmanager