计算行数后无法读取文件数据

Not able to read file data after counting number of lines

import sys
source = open(sys.argv[1], 'rt')
count_lines = len(source.readlines())
print count_lines
for row in source:
    print row
source.close()

我正在尝试计算文件中的行数,然后逐行读取文件。 count_lines returns 正确的值,但 print row 没有输出。我做错了什么基本的事情吗?

调用source.readlines()后,文件的当前位置在文件末尾。您应该使用 0 作为参数调用 source.seek 以将当前位置设置在文件的开头。

如果您正在读取一个大文件,您还希望避免调用 readlines 以避免浪费(可能很多)内存。您可以通过 sum(1 for _ in source).

import sys
source = open(sys.argv[1], 'rt')
count_lines = len(source.readlines())
print count_lines
source.seek(0)
for row in source:
    print row
source.close()