是否有一个Python包被优化用于确定ASCII文件中的行数



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

您可以逐行遍历它:

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')

另一种选择是使用fileinputlineno方法

import fileinput
x = fileinput.input('test.csv')
for line in x:
    pass 
print x.lineno()
3
x.close()

最新更新