[英]Not entering the for loop in python 2.7.2
这是我用来操作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
您多次使用了迭代器,但是迭代器仅是单次使用。
读取时只需复制cr
内容,然后进行遍历:
cr_copy = [c for c in cr]
for row in cr_copy:
或者,还有一种更Python化的方式可以做到这一点:您可以使用itertools.tee ( 请参见本帖子 )将迭代器克隆三遍:
import itertools
cr1, cr2 = itertools.tee(cr)
for row in cr1:
# first loop
for row in cr2:
# secondloop
在第一个和第二个循环之后(例如在第二个循环之前f.seek(0)
使用f.seek(0)
快退:
f.seek(0)
for row in cr:
# loop code
阅读: 从Python文档代码
试试看!!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.