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连接MySQL、MongoDB、Redis、memcache等数据库的方法
Nov 15 Python
Python模拟登录12306的方法
Dec 30 Python
在IIS服务器上以CGI方式运行Python脚本的教程
Apr 25 Python
编写Python爬虫抓取豆瓣电影TOP100及用户头像的方法
Jan 20 Python
Python PyAutoGUI模块控制鼠标和键盘实现自动化任务详解
Sep 04 Python
Python3 安装PyQt5及exe打包图文教程
Jan 08 Python
Python-Tkinter Text输入内容在界面显示的实例
Jul 12 Python
Python socket模块方法实现详解
Nov 05 Python
Python之变量类型和if判断方式
May 05 Python
Python flask框架实现查询数据库并显示数据
Jun 04 Python
matplotlib 多个图像共用一个colorbar的实现示例
Sep 10 Python
python ansible自动化运维工具执行流程
Jun 24 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常用Stream函数集介绍
2013/06/24 PHP
一个比较不错的PHP日历类分享
2014/11/18 PHP
php两种无限分类方法实例
2015/04/21 PHP
迪菲-赫尔曼密钥交换(Diffie?Hellman)算法原理和PHP实现版
2015/05/12 PHP
详谈PHP编码转换问题
2015/07/28 PHP
thinkphp实现附件上传功能
2017/05/26 PHP
JavaScript null和undefined区别分析
2009/10/14 Javascript
7个让JavaScript变得更好的注意事项
2015/01/28 Javascript
纯JS代码实现气泡效果
2016/05/04 Javascript
JS函数arguments数组获得实际传参数个数的实现方法
2016/05/28 Javascript
jQuery.ajax 跨域请求webapi设置headers的解决方案
2016/08/08 Javascript
微信小程序 LOL 英雄介绍开发实例
2016/09/30 Javascript
微信小程序 石头剪刀布实例代码
2017/01/04 Javascript
JavaScript实现提交模式窗口后刷新父窗口数据的方法
2017/06/16 Javascript
详解如何使用Node.js编写命令工具——以vue-cli为例
2017/06/29 Javascript
全面解析vue router 基本使用(动态路由,嵌套路由)
2018/09/02 Javascript
element上传组件循环引用及简单时间倒计时的实现
2018/10/01 Javascript
Vue运用transition实现过渡动画
2019/05/06 Javascript
[52:06]FNATIC vs NIP 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
python标准算法实现数组全排列的方法
2015/03/17 Python
Python2.x和3.x下maketrans与translate函数使用上的不同
2015/04/13 Python
python简单实现基数排序算法
2015/05/16 Python
一步步解析Python斗牛游戏的概率
2016/02/12 Python
详解Pandas之容易让人混淆的行选择和列选择
2019/07/10 Python
Django实现WebSSH操作物理机或虚拟机的方法
2019/11/06 Python
python 如何调用远程接口
2020/09/11 Python
python 监控服务器是否有人远程登录(详细思路+代码)
2020/12/18 Python
Vichy薇姿加拿大官网:法国药妆,全球专业敏感肌护肤领先品牌
2018/07/11 全球购物
数控专业个人求职信范文
2014/02/05 职场文书
低碳环保口号
2014/06/12 职场文书
高三霸气励志标语
2014/06/24 职场文书
工作收入住址证明
2014/10/28 职场文书
2015年植树节活动总结
2015/02/06 职场文书
2015年教研组工作总结
2015/05/04 职场文书
Redis中有序集合的内部实现方式的详细介绍
2022/03/16 Redis
Python使用mitmproxy工具监控手机 下载手机小视频
2022/04/18 Python