.csv文件在传递给第二个函数后变为空

时间:2015-12-04 06:19:16

标签: python csv

我有一个名为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

0 个答案:

没有答案