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中使用摄像头实现简单的延时摄影技术
Mar 27 Python
python简单图片操作:打开\显示\保存图像方法介绍
Nov 23 Python
使用NumPy和pandas对CSV文件进行写操作的实例
Jun 14 Python
python解决字符串倒序输出的问题
Jun 25 Python
python实现杨氏矩阵查找
Mar 02 Python
python利用tkinter实现屏保
Jul 30 Python
利用Pytorch实现简单的线性回归算法
Jan 15 Python
Python实现结构体代码实例
Feb 10 Python
基于python图像处理API的使用示例
Apr 03 Python
django创建css文件夹的具体方法
Jul 31 Python
pytorch实现线性回归以及多元回归
Apr 11 Python
上手简单,功能强大的Python爬虫框架——feapder
Apr 27 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
PHP4 与 MySQL 数据库操作函数详解
2006/10/09 PHP
php数组函数序列之array_combine() - 数组合并函数使用说明
2011/10/29 PHP
php+redis实现消息队列功能示例
2019/09/19 PHP
js判断IE浏览器版本过低示例代码
2013/11/22 Javascript
javascript实现链接单选效果的方法
2015/05/13 Javascript
javascript中CheckBox全选终极方案
2015/05/20 Javascript
详解Vuex管理登录状态
2017/11/13 Javascript
VUE在for循环里面根据内容值动态的加入class值的方法
2018/08/12 Javascript
vue组件间的参数传递实例详解
2019/04/26 Javascript
Vue 3.0 前瞻Vue Function API新特性体验
2019/08/12 Javascript
JavaScript设计模式--简单工厂模式实例分析【XHR工厂案例】
2020/05/23 Javascript
基于Echarts图表在div动态切换时不显示的解决方式
2020/07/20 Javascript
[43:58]DOTA2-DPC中国联赛定级赛 LBZS vs SAG BO3第一场 1月8日
2021/03/11 DOTA
在Python中操作文件之read()方法的使用教程
2015/05/24 Python
windows 下python+numpy安装实用教程
2017/12/23 Python
Python爬虫包BeautifulSoup异常处理(二)
2018/06/17 Python
Appium+Python自动化测试之运行App程序示例
2019/01/23 Python
Python上下文管理器用法及实例解析
2019/11/11 Python
使用HTML5捕捉音频与视频信息概述及实例
2018/08/22 HTML / CSS
HTML5实现可缩放时钟代码
2017/08/28 HTML / CSS
解析html5 canvas实现背景鼠标连线动态效果代码
2019/06/17 HTML / CSS
天猫超市:阿里巴巴打造的网上超市
2016/11/02 全球购物
新加坡最受追捧的体验平台:Hapz
2018/01/01 全球购物
英国简约舒适女装品牌:Great Plains
2018/07/27 全球购物
卡骆驰德国官方网站:Crocs德国
2019/03/29 全球购物
澳大利亚运动鞋商店:Platypus Shoes
2019/09/27 全球购物
德国苹果商店:MacTrade
2020/05/18 全球购物
校园安全检查制度
2014/02/03 职场文书
《金孔雀轻轻跳》教学反思
2014/04/20 职场文书
高中班主任评语大全
2014/04/25 职场文书
创业计划书之养殖业
2019/10/11 职场文书
Java中try catch处理异常示例
2021/12/06 Java/Android
Java字符串逆序方法详情
2022/03/21 Java/Android
vue项目proxyTable配置和部署服务器
2022/04/14 Vue.js
SQL解决未能删除约束问题drop constraint
2022/05/30 SQL Server
JS轻量级函数式编程实现XDM二
2022/06/16 Javascript