例如,我有一个像:
这样的功能def example():
fp = open('example.txt','w+')
fp.write(str(1/0))
fp.close()
然后它将抛出异常,因为未定义1/0。但是,我既不能删除example.txt
也不能修改example.txt
。但我在Python中有一些重要的数据,所以我不能简单地杀死Python并再次运行它。
如果函数以异常结束,我怎么能完成打开文件。
如果我们没有尝试,我们该怎么办:..除了:?
答案 0 :(得分:3)
with open('example.txt','w+') as fp:
try:
fp.write(...)
except ZeroDivisionError as e:
print('there was an error: {}'.format(e))
使用with
上下文管理器,一旦它们超出范围,它们打开的任何文件都将自动关闭。
答案 1 :(得分:2)
您可以将其包装在try / except中以处理错误并在程序结束前关闭文件阅读器。
def example():
fp = open('example.txt', 'w+')
try:
fp.write(str(1/0))
except ZeroDivisionError:
fp.close()
fp.close()
编辑:@IanAuld的答案比我的好。最好接受那个。