2012-11-25 211 views
0

我有一个.csv文件需要循环,然后在一个循环内,我想检查下一行的值每次迭代。我似乎无法让它正常工作,因为它跳过了我在下一次迭代中展望的路线。读取.csv文件。

import csv 
file_object = open('file.csv', 'r') 
reader = csv.reader(file_object, delimiter = ';') 

for line in reader: 
    next_line = reader.next() 
    # It now reads the next line and doesn't iterate over it again in the next 
    # iteration. However, i want it to still iterate over it in the next iteration. 

非常感谢!

回答

1

你可以跟踪当前和下一行的 “手动”

line = reader.next() 
for next_line in reader: 
    # Do your processing 
    line = next_line 
# Now do whatever needs to be done with the very last line 
+0

另外,''itertools.tee()''和''itertools.zip_longest()''。 –

+0

嗯,我不完全知道这是如何工作的:d。您首先阅读line1,然后从line2开始迭代。这是如何让我在迭代期间看到一行,然后在同一行上迭代? – geekkid

+0

@geekkid从''line''开始作为第一行,然后当你循环时,迭代并将第二行放入''next_line'',做你想做的事,然后把行放入''line''中,和真正的第3行放入''next_line''中,然后继续,以''line''为当前行,'next_line''为后面的行,直到到达末尾。然后,您可以在循环之后处理最后一行。 –