python中with的用法

2019-10-05  本文已影响0人  小阿六Minasix

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/qq_27713281/article/details/72758602

在python中,有一些任务,可能事先需要设置,事后做清理工作。对于这种场景,python的with语句提供了一种非常方便的处理方式。一个很好的例子是文件处理,你需要获取一个文件句柄,从文件中读取数据,然后关闭文件句柄,也例如python与数据库的连接使用,需要先创建python与数据库的连接,使用后再对其进行关闭,如此使用比较麻烦,做如下示例介绍。

不使用with语句进行文件处理:

file = open("./foo.txt",”r”)

data = file.read()

file.close()

Tips:

这里有两个问题:

一是可能忘记关闭文件句柄;

二是文件读取数据发生异常,没有进行任何处理。将出现程序报错,异常终止!

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

try:

f = open('xxx')

except:

    print 'fail to open'

exit(-1)

try:

code

except:

    Code

finally:

f.close()

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

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

使用with进行python的文件处理:

With open(“./foo.txt”) as file:

Data = file.read()

With用法原理:紧跟with后面的语句被求值后,返回对象的 __enter__() 方法被调用,这个方法的返回值将被赋值给as后面的变量。

多个相同时使用时写法如下:

with open("./x.txt") as f1, open('./xxx.txt') as f2:

Data_1 = f1.read()

Data_2 = f2.read()

Print(data_1,data_2)

————————————————

版权声明:本文为CSDN博主「AFCentry」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/qq_27713281/article/details/72758602

上一篇 下一篇

猜你喜欢

热点阅读