要用 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]来访问特定行和列的值。其中,row 是 exampleData 中一个列表的下标, 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]进入第一个列表,并给出第三个字符串,以此类推。