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

作者:猪笨是念来过倒 时间:2022-06-06 13:35:24 

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的的行(记录)。

来源:https://blog.csdn.net/liao392781/article/details/81701244

标签:python,读取csv文件
0
投稿

猜你喜欢

  • Python+Tkinter制作猜灯谜小游戏

    2021-09-24 19:43:17
  • mysql int范围与最大值分析

    2012-03-26 18:24:00
  • ASP 游标参数详解(ASP记录集)第1/2页

    2011-04-08 11:04:00
  • yui3的AOP(面向切面编程)和OOP(面向对象编程)

    2009-09-24 14:47:00
  • php中让上传的文件大小在上传前就受限制的两种解决方法

    2023-10-25 17:53:12
  • 非常详细的IFRAME的属性参考手册

    2008-02-12 12:45:00
  • Python中用max()方法求最大值的介绍

    2021-12-08 09:33:06
  • 交互设计实用指南系列(2) –可及

    2010-01-21 12:48:00
  • 在IE6中用PNG图片实现半透明效果

    2008-05-30 13:14:00
  • 教你使用python做一个“罚点球”小游戏

    2022-10-12 00:09:03
  • Python中常用的内置函数

    2023-01-06 08:15:30
  • SQL子查询全接触

    2007-08-20 10:51:00
  • 解决python Jupyter不能导入外部包问题

    2021-02-02 06:19:03
  • Python文本特征抽取与向量化算法学习

    2023-07-19 09:44:29
  • python实现图像拼接

    2023-07-26 15:38:27
  • python 3.7.0 下pillow安装方法

    2023-07-09 09:47:49
  • Asp DatePart 函数的语法详解(用于计算日期并返回指定的时间间隔)

    2012-12-04 20:04:29
  • pandas loc iloc ix用法详细分析

    2021-08-31 20:16:53
  • Pytorch:dtype不一致问题(expected dtype Double but got dtype Float)

    2023-07-05 21:57:33
  • Selenium执行完毕未关闭chromedriver/geckodriver进程的解决办法(java版+python版)

    2023-03-28 12:39:51
  • asp之家 网络编程 m.aspxhome.com