如何遍历csv文件的连续行

how to iterate through consecutive lines of a csv file

抱歉新手问题。我正在尝试遍历 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。提前致谢。

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

我建议您使用 itertools.tee 复制 reader,在其中一个 reader 上跳过一行,然后 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']