python with的用法

前言

有一些任务,可能事先需要设置,事后做清理工作。对于这种场景,Python的with语句提供了一种非常方便的处理方式。一个很好的例子是文件处理,你需要获取一个文件句柄,从文件中读取数据,然后关闭文件句柄。

引出

如果不用with语句,代码如下:

file = open("1.txt")
data = file.read()
file.close()

上面代码存在2个问题:
(1)文件读取发生异常,但没有进行任何处理;
(2)可能忘记关闭文件句柄;

改进

try:
    f = open('xxx')
except:
    print('fail to open')
    exit(-1)
try:
    do something
except:
    do something
finally:
    f.close()

虽然这段代码运行良好,但比较冗长。
而使用with的话,能够减少冗长,还能自动处理上下文环境产生的异常。如下面代码:

with open("1.txt") as file:
    data = file.read()

转载自: http://blog.kissdata.com/2014/05/23/python-with.html.

上一篇:使用XHProf查找PHP性能瓶颈


下一篇:Failed to start component [StandardEngine [Catalina].StandardHost[localhost].StandardContext[/项目名]]