在Python中打印所有CSV行仅适用一次

时间:2016-05-25 18:11:58

标签: python-2.7 csv

我写了一个非常简单的程序,它应该读取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

为什么代码第二次不再打印内容?

2 个答案:

答案 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变量是一个生成器对象。

生成器不存储在内存中,但只能迭代一遍

希望这有帮助, 路加