解决方法主要使用了locals()
具体问题如下:
#coding = utf-8
try:
f = open('一个不存在的文件.txt','r')
print(f.read())
except OSError as reason:
print('出错啦!'+ str(reason))
finally:
f.close()
'''
代码会产生这样的提示错误,这说明没有成功打开文件,
所做的异常处理没有起到作用,在finally语句中,关闭一个未打开的文件,自然还会出错
f.close()
NameError: name 'f' is not defined
'''
错误如下:
代码会产生这样的提示错误,这说明没有成功打开文件,
所做的异常处理没有起到作用,在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()