从csv.reader打印

时间:2016-08-11 18:26:05

标签: python csv

这应该是一个简单的,但我有一点脑屁。 CSV维护四个纬度和经度对的列表。根据代码,如果我打印行[0]它只打印纬度,如果我打印行[1]它打印经度。如何格式化代码以打印特定的纬度/经度对?说.. CSV中的第二个lat / lon对。

import csv

with open('120101.KAP.csv','rb') as csvfile:
    reader = csv.reader(csvfile)
    for row in reader:
        print row[0]

1 个答案:

答案 0 :(得分:4)

循环reader为您提供每一行。如果你想获得第二行,请改用next() function,忽略一个并获得第二行:

reader = csv.reader(csvfile)
next(reader)  # ignore
row = next(reader)  # second row
print row           # print the second row.

您可以使用itertools.islice() object为您进行跳过来概括:

from itertools import islice

reader = csv.reader(csvfile)
row = next(islice(reader, rownumber))  # skip to index rownumber, read that
print row

考虑到计数从0开始,所以"第二行"是rownumber = 1

或者您可以将所有行读入列表并将其编入索引:

reader = csv.reader(csvfile)
rows = list(reader)
print rows[1]  # print the second row
print rows[3]  # print the fourth row

如果行数有限,则只执行此操作(将所有内容加载到列表中)。对读取器的迭代只能一次产生一行,并使用文件缓冲区进行有效读取,限制使用的内存量;你可以用这种方式处理巨大的CSV文件。