python with 语句

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

file = open("/tmp/foo.txt")

data = file.read()file.close()

这里有两个问题:

一是可能忘记关闭文件句柄;
二是文件读取数据发生异常,没有进行任何处理。

下面是处理异常的加强版本:

try:

    f = open('xxx')except:

    print 'fail to open'

    exit(-1)try:    do somethingexcept:    do somethingfinally:

     f.close()

虽然这段代码运行良好,但是太冗长了。

这时候就是和一展身手的时候了。除了有更优雅的语法,还有可以很好的处理上下文环境产生的异常。

下面是与版本的代码:

with open("/tmp/foo.txt") as file:

    data = file.read()

你可能感兴趣的:(python with 语句)