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中的五种异常处理机制介绍
Sep 02 Python
Python实用日期时间处理方法汇总
May 09 Python
python实现的简单抽奖系统实例
May 22 Python
jupyter安装小结
Mar 13 Python
Python Requests模拟登录实现图书馆座位自动预约
Apr 27 Python
如何更优雅地写python代码
Jul 02 Python
django 自定义filter 判断if var in list的例子
Aug 20 Python
简单了解python数组的基本操作
Nov 26 Python
Pytorch 实现sobel算子的卷积操作详解
Jan 10 Python
python3连接mysql获取ansible动态inventory脚本
Jan 19 Python
如何向scrapy中的spider传递参数的几种方法
Nov 18 Python
Django中如何用xlwt生成表格的方法步骤
Jan 31 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
PHILIPS AE3805收音机的分析打磨
2021/03/02 无线电
对squid中refresh_pattern的一些理解和建议
2009/04/17 PHP
用js得到网页中所有的div的id
2020/10/19 Javascript
jquery中交替点击事件的实现代码
2014/02/14 Javascript
javascript与css3动画结合使用小结
2015/03/11 Javascript
javascript实现详细时间提醒信息效果的方法
2015/03/11 Javascript
javascript实时显示北京时间的方法
2015/03/12 Javascript
javascript实现网页中涉及的简易运动(改变宽高、透明度、位置)
2015/11/29 Javascript
jQuery取得iframe中元素的常用方法详解
2016/01/14 Javascript
Easyui 之 Treegrid 笔记
2016/04/29 Javascript
jQuery实现对象转为url参数的方法
2017/01/11 Javascript
ajax的分页查询示例(不刷新页面)
2017/01/11 Javascript
Angular2学习教程之组件中的DOM操作详解
2017/05/28 Javascript
Vue 中如何正确引入第三方模块的方法步骤
2019/05/05 Javascript
python使用装饰器和线程限制函数执行时间的方法
2015/04/18 Python
Python使用剪切板的方法
2017/06/06 Python
对numpy中二进制格式的数据存储与读取方法详解
2018/11/01 Python
Python 文本文件内容批量抽取实例
2018/12/10 Python
linux查找当前python解释器的位置方法
2019/02/20 Python
Python实现使用request模块下载图片demo示例
2019/05/24 Python
python flask解析json数据不完整的解决方法
2019/05/26 Python
Ubuntu下Anaconda和Pycharm配置方法详解
2019/06/14 Python
python3.6根据m3u8下载mp4视频
2019/06/17 Python
python实现爬取百度图片的方法示例
2019/07/06 Python
python实现的登录与提交表单数据功能示例
2019/09/25 Python
TensorFlow:将ckpt文件固化成pb文件教程
2020/02/11 Python
css3截图_动力节点Java学院整理
2017/07/11 HTML / CSS
HTML5 Plus 实现手机APP拍照或相册选择图片上传功能
2016/07/13 HTML / CSS
SQL面试题
2013/12/09 面试题
创业计划书六个要素
2013/12/26 职场文书
大型活动策划方案
2014/01/12 职场文书
离婚律师函范本
2015/05/27 职场文书
运动会加油稿
2015/07/22 职场文书
基于tensorflow权重文件的解读
2021/05/26 Python
如何搭建 MySQL 高可用高性能集群
2021/06/21 MySQL
解决mysql:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO/YES)
2021/06/26 MySQL