Python with的用法


Posted in Python onAugust 22, 2014

在Python中,with关键字是一个替你管理实现上下文协议对象的好东西。例如:file等。示例如下:
  

from __future__ import with_statement 
with open('cardlog.txt','r') as item : 
  for line in item : 
    print line;

 
 在file的结束,会自动关闭该文件句柄。
 
在python2.6中,with正式成为了关键字
所以在python2.5以前,要利用with的话,需要使用:

from __future__ import with_statement

 
 它的原理如下:
所有实现上下文协议的对象都包含以下三种方法:
__context__()  它返回一个自我管理的上下文对象,或者一个真正意义的上下文管理器
 
__enter()__  进入上下文管理器,开始迭代
 
当with语句结束的时候,无论是正常结束还是抛出异常,都会执行__exit__(),该方法用于关闭资源连接。

Python 相关文章推荐
举例详解Python中yield生成器的用法
Aug 05 Python
5种Python单例模式的实现方式
Jan 14 Python
Python实现Sqlite将字段当做索引进行查询的方法
Jul 21 Python
R语言 vs Python对比:数据分析哪家强?
Nov 17 Python
Python Unittest自动化单元测试框架详解
Apr 04 Python
python pytest进阶之xunit fixture详解
Jun 27 Python
python scrapy爬虫代码及填坑
Aug 12 Python
Python实现报警信息实时发送至邮箱功能(实例代码)
Nov 11 Python
解决django后台管理界面添加中文内容乱码问题
Nov 15 Python
Python如何进行时间处理
Aug 06 Python
python如何使用腾讯云发送短信
Sep 17 Python
Python Pandas pandas.read_sql_query函数实例用法分析
Jun 21 Python
Tornado服务器中绑定域名、虚拟主机的方法
Aug 22 #Python
python with statement 进行文件操作指南
Aug 22 #Python
Python中还原JavaScript的escape函数编码后字符串的方法
Aug 22 #Python
python错误:AttributeError: 'module' object has no attribute 'setdefaultencoding'问题的解决方法
Aug 22 #Python
Python升级提示Tkinter模块找不到的解决方法
Aug 22 #Python
Python实现多行注释的另类方法
Aug 22 #Python
Python利用pyHook实现监听用户鼠标与键盘事件
Aug 21 #Python
You might like
JS 加入收藏夹的代码(主流浏览器通用)
2013/05/13 Javascript
用jQuery与JSONP轻松解决跨域访问的问题
2014/02/04 Javascript
浅析JavaScript动画
2015/06/10 Javascript
Bootstrap每天必学之面板
2015/11/30 Javascript
基于JavaScript实现轮播图代码
2016/07/14 Javascript
AngularJs Understanding the Model Component
2016/09/02 Javascript
利用Node.JS实现邮件发送功能
2016/10/21 Javascript
jQuery实现的模拟弹出窗口功能示例
2016/11/24 Javascript
jQuery中select与datalist制作下拉菜单时的区别浅析
2016/12/30 Javascript
详解AngularJs ui-router 路由的简单介绍
2017/04/26 Javascript
修改UA在PC中访问只能在微信中打开的链接方法
2017/11/27 Javascript
除Console.log()外更多的Javascript调试命令
2018/01/24 Javascript
Node.js使用supervisor进行开发中调试的方法
2019/03/26 Javascript
Vue 使用formData方式向后台发送数据的实现
2019/04/14 Javascript
vue跳转同一个组件,参数不同,页面接收值只接收一次的解决方法
2019/11/05 Javascript
vue中axios防止多次触发终止多次请求的示例代码(防抖)
2020/02/16 Javascript
Vue3.0的优化总结
2020/10/16 Javascript
python 基础学习第二弹 类属性和实例属性
2012/08/27 Python
python更新列表的方法
2015/07/28 Python
Python实现控制台进度条功能
2016/01/04 Python
用python 批量更改图像尺寸到统一大小的方法
2018/03/31 Python
Python-OpenCV基本操作方法详解
2018/04/02 Python
PyCharm代码回滚,恢复历史版本的解决方法
2018/10/22 Python
Python编程中flask的简介与简单使用
2018/12/28 Python
python3 pathlib库Path类方法总结
2019/12/26 Python
详解python tkinter模块安装过程
2020/01/06 Python
CSS3实现多背景展示效果通过CSS3定位多张背景
2014/08/10 HTML / CSS
全球速卖通巴西站点:Aliexpress巴西
2016/08/24 全球购物
意大利巧克力店:Chocolate Shop
2019/07/24 全球购物
介绍一下gcc特性
2012/01/20 面试题
毕业设计计划书
2014/01/09 职场文书
篝火晚会主持词
2014/03/25 职场文书
校园广播站开场白
2015/06/01 职场文书
2016年“5.12”护士节致辞
2015/07/31 职场文书
mysql 如何获取两个集合的交集/差集/并集
2021/06/08 MySQL
详解gantt甘特图可拖拽、编辑(vue、react都可用 highcharts)
2021/11/27 Vue.js