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定时检查某个进程是否已经关闭的方法
May 20 Python
Python基于动态规划算法计算单词距离
Jul 25 Python
Python实现将数据库一键导出为Excel表格的实例
Dec 30 Python
Python设计模式之外观模式实例详解
Jan 17 Python
解决python字典对值(值为列表)赋值出现重复的问题
Jan 20 Python
django页面跳转问题及注意事项
Jul 18 Python
Django 限制访问频率的思路详解
Dec 24 Python
python ffmpeg任意提取视频帧的方法
Feb 21 Python
python使用PIL剪切和拼接图片
Mar 23 Python
如何基于windows实现python定时爬虫
May 01 Python
python让函数不返回结果的方法
Jun 22 Python
在PyCharm中安装PaddlePaddle的方法
Feb 05 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函数
2006/10/09 PHP
PHP判断数据库中的记录是否存在的方法
2014/11/14 PHP
phpcms配置列表页以及获得文章发布时间
2017/07/04 PHP
PHP获取数组中指定的一列实例
2017/12/27 PHP
PHP实现微信小程序人脸识别刷脸登录功能
2018/05/24 PHP
php实现表单提交上传文件功能
2018/05/28 PHP
jQuery中(function(){})()执行顺序的理解
2013/03/05 Javascript
JavaScript对表格或元素按文本,数字或日期排序的方法
2015/05/26 Javascript
Bootstrap整体框架之CSS12栅格系统
2016/12/15 Javascript
Javascript 实现计算器时间功能详解及实例(二)
2017/01/08 Javascript
又一款MVVM组件 构建自己的Vue组件(2)
2017/03/13 Javascript
利用forever和pm2部署node.js项目过程
2017/05/10 Javascript
seajs中最常用的7个功能、配置示例
2017/10/10 Javascript
微信小程序使用字体图标的方法
2019/05/23 Javascript
vue的keep-alive用法技巧
2019/08/15 Javascript
vue cli3 配置proxy代理无效的解决
2019/10/30 Javascript
vue实现购物车功能(商品分类)
2020/04/20 Javascript
vue 输入电话号码自动按3-4-4分割功能的实现代码
2020/04/30 Javascript
解决vue字符串换行问题(绝对管用)
2020/08/06 Javascript
vuex刷新后数据丢失的解决方法
2020/10/18 Javascript
[02:26]2016国际邀请赛8月3日开战 中国军团出征西雅图
2016/08/02 DOTA
用Python和MD5实现网站挂马检测程序
2014/03/13 Python
Python写的一个定时重跑获取数据库数据
2016/12/28 Python
python单例模式获取IP代理的方法详解
2018/09/13 Python
使用Python代码实现Linux中的ls遍历目录命令的实例代码
2019/09/07 Python
python实现简单飞行棋
2020/02/06 Python
Python生成器实现简单&quot;生产者消费者&quot;模型代码实例
2020/03/27 Python
如何真正的了解python装饰器
2020/08/14 Python
CSS3教程:边框属性border的极致应用
2009/04/02 HTML / CSS
美国五金商店:Ace Hardware
2018/03/27 全球购物
作风建设年活动总结
2014/08/27 职场文书
企业法人代表证明书
2014/09/27 职场文书
幼儿园见习报告
2014/10/30 职场文书
迎新生欢迎词2015
2015/07/16 职场文书
Nginx+Tomcat实现负载均衡、动静分离的原理解析
2021/03/31 Servers
不要在HTML中滥用div
2021/05/08 HTML / CSS