Python中的CSV文件使用"with"语句的方式详解


Posted in Python onOctober 16, 2018

是否可以直接使用with语句与CSV文件?能够做这样的事情似乎很自然:

import csv
with csv.reader(open("myfile.csv")) as reader:
  # do things with reader

但是csv.reader不提供__enter__和__exit__方法,所以这不行.但是我可以分两步做:

import csv
with open("myfile.csv") as f:
  reader = csv.reader(f)
  # do things with reader

这是第二种方式吗?为什么他们不会使csv.reader与with语句直接兼容?

with语句的主要用法是对语句中使用的对象进行异常安全的清除.确保文件已关闭,锁定已释放,上下文恢复等.

Python .org/library/csv.html#csv.reader” rel=”noreferrer”>csv.reader是否有异常清理的东西?

我会一起去:

with open("myfile.csv") as f:
  for row in csv.reader(f):
    # process row

您不需要将修补程序提交到一起使用csv.reader和语句.

import contextlib

模块 contextlib 中功能上下文管理器的帮助:

contextmanager(func)
  @contextmanager decorator.

典型用法:

@contextmanager
  def some_generator(<arguments>):
    <setup>
    try:
      yield <value>
    finally:
      <cleanup>

这使得:

with some_generator(<arguments>) as <variable>:
    <body>

相当于:

<setup>
  try:
    <variable> = <value>
    <body>
  finally:
    <cleanup>

以下是我如何使用它的具体示例: curses_screen .

总结

以上所述是小编给大家介绍的Python中的CSV文件使用"with"语句的方式详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
python中stdout输出不缓存的设置方法
May 29 Python
python方法生成txt标签文件的实例代码
May 10 Python
python邮件发送smtplib使用详解
Jun 16 Python
cProfile Python性能分析工具使用详解
Jul 22 Python
python中对_init_的理解及实例解析
Oct 11 Python
python numpy中cumsum的用法详解
Oct 17 Python
python实现将一维列表转换为多维列表(numpy+reshape)
Nov 29 Python
Django 路由层URLconf的实现
Dec 30 Python
tensorflow指定CPU与GPU运算的方法实现
Apr 21 Python
Django自带的用户验证系统实现
Dec 18 Python
实例讲解Python中sys.argv[]的用法
Jun 03 Python
python库sklearn常用操作
Aug 23 Python
详解django的serializer序列化model几种方法
Oct 16 #Python
Python调用C++,通过Pybind11制作Python接口
Oct 16 #Python
Python之inspect模块实现获取加载模块路径的方法
Oct 16 #Python
django 将model转换为字典的方法示例
Oct 16 #Python
python复制列表时[:]和[::]之间有什么区别
Oct 16 #Python
使用Python编写Prometheus监控的方法
Oct 15 #Python
python取数作为临时极大值(极小值)的方法
Oct 15 #Python
You might like
用PHP连接Oracle数据库
2006/10/09 PHP
可缩放Reloaded-一个针对可缩放元素的复用组件
2007/03/10 Javascript
又一个小巧的图片预加载类
2007/05/05 Javascript
javascript encodeURI和encodeURIComponent的比较
2010/04/03 Javascript
JavaScript高级程序设计(第3版)学习笔记11 内建js对象
2012/10/11 Javascript
jQuery DOM操作实例
2014/03/05 Javascript
javascript生成随机数的方法
2014/05/16 Javascript
javascript实现滑动解锁功能
2014/12/31 Javascript
javascript定时器完整实例
2015/02/10 Javascript
简介可以自动完成UI的AngularJS工具angular-smarty
2015/06/23 Javascript
纯javascript制作日历控件
2015/07/17 Javascript
Node.js 应用跑得更快 10 个技巧
2016/04/03 Javascript
JavaScript中的this陷阱的最全收集并整理(没有之一)
2017/02/21 Javascript
Bootstrap框架建立树形菜单(Tree)的实例代码
2017/10/30 Javascript
Vue中的异步组件函数实现代码
2018/07/20 Javascript
angular1.x ui-route传参的三种写法小结
2018/08/31 Javascript
微信小程序实现无限滚动列表
2020/05/29 Javascript
JavaScript常见事件对象与操作实例总结
2019/01/05 Javascript
js+canvas实现画板功能
2020/09/13 Javascript
详解javascript脚本何时会被执行
2021/02/05 Javascript
[05:59]2018DOTA2国际邀请赛寻真——只为胜利的Secret
2018/08/13 DOTA
python安装pywin32clipboard的操作方法
2019/01/24 Python
Python pip install之SSL异常处理操作
2020/09/03 Python
实现CSS3中的border-radius(边框圆角)示例代码
2013/07/19 HTML / CSS
巴西购物网站:Estrela10
2018/12/13 全球购物
戴尔荷兰官方网站:Dell荷兰
2020/10/04 全球购物
什么是反射?如何实现反射?
2016/07/25 面试题
电气工程师岗位职责
2014/01/01 职场文书
简短证婚人证婚词
2014/01/09 职场文书
幼儿园毕业园长感言
2014/02/24 职场文书
2014年电话销售工作总结
2014/12/01 职场文书
街道党风廉政建设调研报告
2015/01/01 职场文书
户外拓展训练感想
2015/08/07 职场文书
2016年“世界环境日”校园广播稿
2015/12/18 职场文书
MySQL表锁、行锁、排它锁及共享锁的使用详解
2022/04/02 MySQL
MySQL详细讲解变量variables的用法
2022/06/21 MySQL