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 正则表达式(转义问题)
Dec 15 Python
简单介绍Python中的struct模块
Apr 28 Python
在Python中处理字符串之isdigit()方法的使用
May 18 Python
python处理csv数据动态显示曲线实例代码
Jan 23 Python
Python中偏函数用法示例
Jun 07 Python
Python后台开发Django会话控制的实现
Apr 15 Python
使用python实现男神女神颜值打分系统(推荐)
Oct 31 Python
python飞机大战pygame碰撞检测实现方法分析
Dec 17 Python
python Tensor和Array对比分析
Jan 08 Python
Python图像处理库PIL的ImageEnhance模块使用介绍
Feb 26 Python
Django生成数据库及添加用户报错解决方案
Oct 09 Python
python3实现无权最短路径的方法
May 12 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 简单日历实现代码
2009/10/28 PHP
PHP数据过滤的方法
2013/10/30 PHP
对PHP新手的一些建议(PHP学习经验总结)
2014/08/20 PHP
php中preg_replace_callback函数简单用法示例
2016/07/21 PHP
PHP入门教程之正则表达式基本用法实例详解(正则匹配,搜索,分割等)
2016/09/11 PHP
Yii实现文章列表置顶功能示例
2016/10/18 PHP
ThinkPHP下表单令牌错误与解决方法分析
2017/05/20 PHP
ext form 表单提交数据的方法小结
2008/08/08 Javascript
JavaScript作用域与作用域链深入解析
2013/12/06 Javascript
js跨域问题浅析及解决方法优缺点对比
2014/11/08 Javascript
javascript格式化日期时间方法汇总
2015/06/19 Javascript
jquery+html5烂漫爱心表白动画代码分享
2015/08/24 Javascript
深入理解Javascript中的作用域链和闭包
2017/04/25 Javascript
React复制到剪贴板的示例代码
2017/08/22 Javascript
vue项目中axios使用详解
2018/02/07 Javascript
详解vue 项目白屏解决方案
2018/10/31 Javascript
express 项目分层实践详解
2018/12/10 Javascript
python实现迭代法求方程组的根过程解析
2019/11/25 Javascript
关于pytorch中网络loss传播和参数更新的理解
2019/08/20 Python
keras model.fit 解决validation_spilt=num 的问题
2020/06/19 Python
如何表示python中的相对路径
2020/07/08 Python
解决python 在for循环并且pop数组的时候会跳过某些元素的问题
2020/12/11 Python
HTML5中新标签和常用标签详解
2014/03/07 HTML / CSS
会走动的图形html5时钟示例
2014/04/27 HTML / CSS
canvas里面如何基于随机点绘制一个多边形的方法
2018/06/13 HTML / CSS
关联、聚合(Aggregation)以及组合(Composition)的区别
2012/02/29 面试题
会计主管岗位职责
2014/01/03 职场文书
宠物店的创业计划书范文
2014/01/11 职场文书
大学考试作弊检讨书
2014/01/30 职场文书
爱祖国爱家乡演讲稿
2014/09/02 职场文书
大学生考试作弊检讨书
2014/09/21 职场文书
2014年体育部工作总结
2014/11/13 职场文书
2015年施工员工作总结范文
2015/04/20 职场文书
2015年街道办事处工作总结
2015/05/22 职场文书
《包身工》教学反思
2016/02/23 职场文书
navicat 连接Ubuntu虚拟机的mysql的操作方法
2022/04/02 MySQL