如何遍历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
对于在不同行上包含数字 1
到 5
的输入文件,输出为
['1'] ['2']
['2'] ['3']
['3'] ['4']
['4'] ['5']
抱歉新手问题。我正在尝试遍历 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
对于在不同行上包含数字 1
到 5
的输入文件,输出为
['1'] ['2']
['2'] ['3']
['3'] ['4']
['4'] ['5']