我有一个名为myfile.csv的大型csv文件。 我有一个计算行数的函数。
然后它调用另一个应该执行相同操作的函数,但它不会输出相同的结果。
文件:
<div id="d">
<input type="submit" name="wp-submit" id="wp-submit" value="Login" />
</div>
输出:
import csv
def main():
csvfile = open('myfile.csv', 'r')
reader = csv.DictReader(csvfile)
mycount = myfunc(reader)
def myfunc(reader):
print "FIRST: " + str(reader)
count = 0
for row in reader:
count = count + 1
print "ONE: " + str(count)
myfunc_two(reader)
def myfunc_two(reader):
print "SECOND: " + str(reader)
count = 0
for row in reader:
count = count + 1
print "TWO: " + str(count)
if __name__ == '__main__':
main()
为什么文件在myfunc_two中突然变空?
编辑1: 鉴于读取光标位于文件的末尾,myfunc_two返回零。
但是,由于myfunc_two无法调用csvfile.seek(0),这个问题只能通过将csvfile传递给两个函数来解决吗?
注意: reader.seek(0)不起作用
编辑2: 下面的代码在保持上述代码使用的相同想法的同时起作用,它不是作为答案而写的,因为我无法提供清晰的解释来与之相配。
FIRST: <csv.DictReader instance at 0xb7240a8c>
ONE: 180433
SECOND: <csv.DictReader instance at 0xb7240a8c>
TWO: 0