我写了一个非常简单的程序,它应该读取CSV并打印所有行两次。但是,当我运行程序时,它第一次打印所有行,第二次打印没有。
代码:
<form action="secure.payu/_payment.php...">
<input id="amount" type="hidden" value="<?php $db['amount']; ?>"/>
<input id="productinfo" type="hidden" value="<?php $db['productInfo']; ?>"/>
<input id="firstname" type="hidden" value="<?php $db['firstname']; ?>"/>
<input type="submit" value="Confirm"/>
</form>
输出:
import csv
csvfile = csv.reader(open(<path>, 'rb'))
print 'Attempt 1'
for row in csvfile:
print row
print 'Attempt 2'
for row in csvfile:
print row
为什么代码第二次不再打印内容?
答案 0 :(得分:3)
您需要rewind
打开的文件:
import csv
csvfile = csv.reader(open(<path>, 'rb'))
print 'Attempt 1'
for row in csvfile:
print row
csvfile.seek(0, 0)
print 'Attempt 2'
for row in csvfile:
print row
这样它应该可以正常工作。
答案 1 :(得分:0)
如果我错了,请纠正我,但我很确定你创建的csvfile
变量是一个生成器对象。
生成器不存储在内存中,但只能迭代一遍!
希望这有帮助, 路加