当前位置:嗨网首页>书籍在线阅读

03-reader对象

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

16.1.1 reader对象

要用 csv 模块从CSV文件中读取数据,需要创建一个 reader 对象。 reader 对象让你迭代遍历CSV文件中的每一行。在交互式环境中输入以下代码,同时将example.csv放在当前工作目录中:

❶ >>> import csv
❷ >>> exampleFile = open('example.csv')
❸ >>> exampleReader = csv.reader(exampleFile)
❹ >>> exampleData = list(exampleReader)
❺ >>> exampleData
   [['4/5/2015 13:34', 'Apples', '73'], ['4/5/2015 3:41', 'Cherries', '85'],
   ['4/6/2015 12:46', 'Pears', '14'], ['4/8/2015 8:59', 'Oranges', '52'],
   ['4/10/2015 2:07', 'Apples', '152'], ['4/10/2015 18:10', 'Bananas', '23'],
   ['4/10/2015 2:40', 'Strawberries', '98']]

csv 模块是Python自带的,因此不需要安装就可以导入它❶。

要用 csv 模块读取CSV文件,首先用 open() 函数打开它❷,就像打开任何其他文本文件一样。但是,不用在 open() 返回的 File 对象上调用 read()readlines() 方法,而是将它传递给 csv.reader() 函数❸。这将返回一个 reader 对象供你使用。请注意,不能直接将文件名字符串传递给 csv.reader() 函数。

要访问 reader 对象中的值,最直接的方法就是将它转换成一个普通Python列表,即将它传递给 list() ❹。在这个 reader 对象上应用 list() 函数,将返回一个列表的列表。可以将它保存在变量 exampleData 中。在交互式环境中输入 exampleData ,将显示列表的列表❺。

既然已经将CSV文件表示为列表的列表,就可以用表达式 exampleData[row] [col] 来访问特定行和列的值。其中, rowexampleData 中一个列表的索引, col 是该列表中你想访问的项的索引。在交互式环境中输入以下代码:

>>> exampleData[0][0]
'4/5/2015 13:34'
>>> exampleData[0][1]
'Apples'
>>> exampleData[0][2]
'73'
>>> exampleData[1][1]
'Cherries'
>>> exampleData[6][1]
'Strawberries'

exampleData[0][0] 进入第一个列表,并给出第一个字符串; exampleData[0][2] 进入第一个列表,并给出第三个字符串;以此类推。