没有在python 2.7.2中输入for循环

时间:2013-09-21 07:26:00

标签: python csv python-2.7 for-loop

以下是我用来操作CSV文件的代码。它没有进入第二和第三循环。

import csv
f=open("/Users/shivendraagrawal/Desktop/Training Dataset.csv","rU")
cr = csv.reader(f)
mapping={}
out={}
i=0
for row in cr:
      i=i+1
      mapping[row[0]]=0
      out[row[0]]=0
for row in cr:
      print "hi"
      mapping[row[0]]=mapping[row[0]]+row[5]
      if row[6]=="TRUE":
            out[row[0]]=out[row[0]]+1

for row in cr:
      print mapping[row[0]] +'  '+out[row[0]]

print i   

2 个答案:

答案 0 :(得分:2)

你不止一次使用迭代器,但迭代器只是一次性的。

阅读时只需复制cr内容,然后重复:

cr_copy = [c for c in cr]
for row in cr_copy:

或者,有更多的Pythonic方法:你可以使用itertools.teesee this post)克隆迭代器三次:

import itertools

cr1, cr2 = itertools.tee(cr)
for row in cr1:
     # first loop

for row in cr2:
     # secondloop

答案 1 :(得分:1)

使用f.seek(0)在第一次和第二次循环后回退,例如在第二次循环之前:

f.seek(0)
for row in cr:
    # loop code 

阅读:from Python doc code

试一试!!