python读取csv文件指定行的2种方法详解


Posted in Python onFebruary 13, 2020

csv是Comma-Separated Values的缩写,是用文本文件形式储存的表格数据,比如如下的表格

python读取csv文件指定行的2种方法详解

就可以存储为csv文件,文件内容是:

No.,Name,Age,Score

1,Apple,12,98

2,Ben,13,97

3,Celia,14,96

4,Dave,15,95

假设上述csv文件保存为"A.csv",如何用Python像操作Excel一样提取其中的一行,也就是一条记录,利用Python自带的csv模块,有2种方法可以实现:

方法一:reader

第一种方法使用reader函数,接收一个可迭代的对象(比如csv文件),能返回一个生成器,就可以从其中解析出csv的内容:比如下面的代码可以读取csv的全部内容,以行为单位:

import csv
with open('A.csv','rb') as csvfile:
  reader = csv.reader(csvfile)
  rows = [row for row in reader]
print rows

得到:

[['No.', 'Name', 'Age', 'Score'],

['1', 'Apple', '12', '98'],

['2', 'Ben', '13', '97'],

['3', 'Celia', '14', '96'],

['4', 'Dave', '15', '95']]

要提取其中第二行,可以用下面的代码:

import csv
with open('A.csv','rb') as csvfile:
  reader = csv.reader(csvfile)
  for i,rows in enumerate(reader):
    if i == 2:
    row = rows
print row

得到:

['2', 'Ben', '13', '97']

这种方法是通用的方法,要事先知道行号,比如Ben的记录在第2行,而不能根据'Ben'这个名字查询。这时可以采用第二种方法:

方法二:DictReader

第二种方法是使用DictReader,和reader函数类似,接收一个可迭代的对象,能返回一个生成器,但是返回的每一个单元格都放在一个字典的值内,而这个字典的键则是这个单元格的标题(即列头)。用下面的代码可以看到DictReader的结构:

import csv
with open('A.csv','rb') as csvfile:
  reader = csv.DictReader(csvfile)
  rows = [row for row in reader]
print rows

得到:

[{'Age': '12', 'No.': '1', 'Score': '98', 'Name': 'Apple'},

{'Age': '13', 'No.': '2', 'Score': '97', 'Name': 'Ben'},

{'Age': '14', 'No.': '3', 'Score': '96', 'Name': 'Celia'},

{'Age': '15', 'No.': '4', 'Score': '95', 'Name': 'Dave'}]

如果我们想用DictReader读取csv的某一列,就可以用列的标题查询:

import csv
with open('A.csv','rb') as csvfile:
  reader = csv.DictReader(csvfile)
  for row in reader:
    if row['Name']=='Ben':
    print row

就得到:

{'Age': '13', 'No.': '2', 'Score': '97', 'Name': 'Ben'}

可见,DictReader很适合读取csv的的行(记录)。

Python 相关文章推荐
Python正则抓取网易新闻的方法示例
Apr 21 Python
python生成二维码的实例详解
Oct 29 Python
python抓取文件夹的所有文件
Feb 27 Python
sublime python3 输入换行不结束的方法
Apr 19 Python
Python实现的当前时间多加一天、一小时、一分钟操作示例
May 21 Python
python实现俄罗斯方块
Jun 26 Python
python使用xlrd和xlwt读写Excel文件的实例代码
Sep 05 Python
Python如何获得百度统计API的数据并发送邮件示例代码
Jan 27 Python
python 解决print数组/矩阵无法完整输出的问题
Feb 19 Python
python操作链表的示例代码
Sep 27 Python
python3中calendar返回某一时间点实例讲解
Nov 18 Python
pandas数值排序的实现实例
Jul 25 Python
Python类中self参数用法详解
Feb 13 #Python
python字符串下标与切片及使用方法
Feb 13 #Python
python时间与Unix时间戳相互转换方法详解
Feb 13 #Python
Python3查找列表中重复元素的个数的3种方法详解
Feb 13 #Python
python 实现字符串下标的输出功能
Feb 13 #Python
Python3实现监控新型冠状病毒肺炎疫情的示例代码
Feb 13 #Python
python操作docx写入内容,并控制文本的字体颜色
Feb 13 #Python
You might like
自己动手,丰衣足食 - 短波框形天线制作
2021/03/01 无线电
Thinkphp框架开发移动端接口(2)
2016/08/18 PHP
thinkPHP5.0框架事务处理操作简单示例
2018/09/07 PHP
jquery+ajax每秒向后台发送请求数据然后返回页面的代码
2011/01/17 Javascript
Jquery显示和隐藏元素或设为只读(含Ligerui的控件禁用,实例说明介绍)
2013/07/09 Javascript
JavaScript如何从listbox里同时删除多个项目
2013/10/12 Javascript
JS获取月的最后一天与JS得到一个月份最大天数的实例代码
2013/12/16 Javascript
JS控制图片等比例缩放的示例代码
2013/12/24 Javascript
node.js使用require()函数加载模块
2014/11/26 Javascript
node.js中的http.response.getHeader方法使用说明
2014/12/14 Javascript
jQuery 1.9.1源码分析系列(十五)动画处理之缓动动画核心Tween
2015/12/03 Javascript
使用jQuery调用XML实现无刷新即时聊天
2016/08/07 Javascript
angular.JS实现网页禁用调试、复制和剪切
2017/03/31 Javascript
js图片加载效果实例代码(延迟加载+瀑布流加载)
2017/05/12 Javascript
php 修改密码实现代码
2017/05/24 Javascript
微信小程序踩坑记录之解决tabBar.list[3].selectedIconPath大小超过40kb
2018/07/04 Javascript
Vuex 使用及简单实例(计数器)
2018/08/29 Javascript
Element-UI踩坑之Pagination组件的使用
2018/10/29 Javascript
JavaScript设计模式之命令模式实例分析
2019/01/16 Javascript
解决微信授权成功后点击按返回键出现空白页和报错的问题
2020/06/08 Javascript
vue打包npm run build时候界面报错的解决
2020/08/13 Javascript
在vue中封装方法以及多处引用该方法详解
2020/08/14 Javascript
vue3.0 项目搭建和使用流程
2021/03/04 Vue.js
[48:53]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS VG第一场
2014/05/26 DOTA
Python中的迭代器漫谈
2015/02/03 Python
图解Python变量与赋值
2018/04/03 Python
Python实现KNN(K-近邻)算法的示例代码
2019/03/05 Python
Python列表删除元素del、pop()和remove()的区别小结
2019/09/11 Python
手机使用python操作图片文件(pydroid3)过程详解
2019/09/25 Python
Pytorch maxpool的ceil_mode用法
2020/02/18 Python
通过Python pyecharts输出保存图片代码实例
2020/11/25 Python
2014最新开业庆典策划方案(5篇)
2014/09/15 职场文书
公路施工安全责任书
2015/05/08 职场文书
2015年度学校卫生工作总结
2015/05/12 职场文书
在职证明范本
2015/06/15 职场文书
教师网络培训心得体会
2016/01/09 职场文书