更新时间:2022-09-08 来源:黑马程序员 浏览量:
之前在介绍finally语句时,说过finally语句用于释放资源,如关闭文件等。除了在finally语句中手动释放资源以外,还可以使用with语句预定义清理操作,即无论资源在使用过程中是否发生异常,都会执行释放资源的操作,比如文件使用后自动关闭。
Python2.5开始(如果要在Python2.5中使用with语句,需通过from_future_importwith_statement导入)引入了with语句,从2.6版本正式启用。with语句适用于对资源进行访问的场合,确保不管使用过程中是否发生异常都会执行必要的“清理”操作,释放资源。
with语句的基本语法如下:
with 上下文表达式 [as 资源对象]: 对象的操作
上述语法格式表示的含义如下。
·上下文表达式:返回一个上下文管理器对象。若指定了as子句,该对象并不赋值给资源对象,而是将上下文管理器的__enter__()方法的返回值赋值给资源对象。
·资源对象:可以是单个变量,也可以是元组。
·对象的操作:with语句包裹的代码块。在执行该代码块之前,会调用上下文管理器的__enter__()方法;在执行代码块之后,会执行__exit__()方法。
使用with语句操作文件对象的示例如下:
with open(''/tmp/foo.txt'') as file: data = file.read()
上述示例使用with语句打开文件。如果能顺利打开文件,则将文件对象赋值给file,然后调用read方法读取了file对象的数据。当对文件的操作结束以后,with语句会关闭文件。即使这段代码在运行的过程中产生了异常,with语句也会关闭文件。
【AI设计】北京143期毕业仅36天,全员拿下高薪offer!黑马AI设计连续6期100%高薪就业
2025-09-19【跨境电商运营】深圳跨境电商运营毕业22个工作日,就业率91%+,最高薪资达13500元
2025-09-19【AI运维】郑州运维1期就业班,毕业14个工作日,班级93%同学已拿到Offer, 一线均薪资 1W+
2025-09-19【AI鸿蒙开发】上海校区AI鸿蒙开发4期5期,距离毕业21天,就业率91%,平均薪资14046元
2025-09-19【AI大模型开发-Python】毕业33个工作日,就业率已达到94.55%,班均薪资20763元
2025-09-19【AI智能应用开发-Java】毕业5个工作日就业率98.18%,最高薪资 17.5k*13薪,全班平均薪资9244元
2025-09-19