如何遍历csv文件的连续行

时间:2015-04-10 10:24:45

标签: python-2.7 csv iterator

对不起新手问题。我试图在python中迭代csv文件的连续(元组)行。我正在尝试的是:

with open ('my_file.csv','rb') as f_obj:
    reader=csv.reader(f_obj)
    for f_row , s_row in zip(reader , reader[1:]):
          do something

它也不适用于izip。提前谢谢。

1 个答案:

答案 0 :(得分:1)

迭代器中的csv.reader,因此它只能读取一次,然后就会耗尽。此外,迭代器不可索引,因此zip(reader , reader[1:])不起作用。

我建议您使用itertools.tee复制阅读器,在其中一个阅读器上跳过一行,然后zip

with open('my_file.csv') as f_obj:
    reader1, reader2 = itertools.tee(csv.reader(f_obj))
    next(reader2) # skip first line in reader2
    for f_row , s_row in zip(reader1, reader2):
          print f_row, s_row

对于在单独的行中包含数字15的输入文件,输出为

['1'] ['2']
['2'] ['3']
['3'] ['4']
['4'] ['5']