-1

是否有优化的 Python 包来确定一个大的 ASCII 文件中有多少行而不将整个文件加载到内存中?这与如何在 Python 中廉价地获取行数的主题不同问题与内置 Python 解决方案有关。

4

2 回答 2

4

您可以逐行遍历它:

with open('filename.txt', 'r') as handle:
    num_lines = sum(1 for line in handle)

以更大的块读取它并只计算换行符可能会更快:

with open('filename.txt', 'r') as handle:
    num_lines = 0

    for chunk in iter(lambda: handle.read(1024*1024), None):
        num_lines += chunk.count('\n')
于 2013-06-07T17:27:32.237 回答
0

Another option involves using fileinput's lineno method

import fileinput
x = fileinput.input('test.csv')
for line in x:
    pass 
print x.lineno()
3
x.close()
于 2013-06-07T17:35:58.650 回答