课程
/后端开发
/Python
/Python错误和异常
遇到异常之后,with as 到底能不能关闭文件呢?
2016-08-12
源自:Python错误和异常 2-6
正在回答
我觉得不能,所以用with-as操作文件时,最好用try-except捕获可能发生的异常,只有有了try-except文件才能保证一定被关闭,当没有try-except捕获异常时,一旦异常发生,异常就被提交给python解释器了,导致程序不再向下执行,故文件未关闭
慕粉3830120
自己运行一下代码就知道了
try: with open('t1.txt', 'r') as f1: cont = f1.read() print int(cont) print "f1 qushiba"except: print 'file expection'print f1.closed
Dieter_Lan
hehehehehehehehe 回复 Dieter_Lan
不管有没有异常 都会先自动关闭文件 如果没有设置try except来捕获该异常 就会由python解释器抛出异常了
在文件不存在的情况下,不能正常关闭文件,所以这是with as语句的一个问题,需要加新的try except语句来catch f.seek产生的valueError(起始值不能是-5)
举报
让我们一起来学习Python对于错误和异常的处理方式