具体问题如下
#coding = utf-8
try:
f = open('一个不存在的文件.txt','r')
print(f.read())
except OSError as reason:
print('出错啦!'+ str(reason))
finally:
if f in locals():
f.close()
版权声明:本文为CSDN博主「jasonLee_lijiaqi」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/jasonLee_lijiaqi/article/details/79321605
错误如下:
代码会产生这样的提示错误,这说明没有成功打开文件,
所做的异常处理没有起到作用,在finally语句中,关闭一个未打开的文件,自然会出错
解决方法:
使用locals(),locals()是当前局部变量符号表
如果f成功打开,则f就会在locals()内;直接判断f是否在locals()内即可#coding = utf-8
try:
f = open('一个不存在的文件.txt','r')
print(f.read())
except OSError as reason:
print('出错啦!'+ str(reason))
finally:
if f in locals():
f.close()
————————————————
版权声明:本文为CSDN博主「jasonLee_lijiaqi」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/jasonLee_lijiaqi/article/details/79321605