python中with的用法
版权声明:本文为博主原创文章,遵循 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