如何在不阅读文档的情况下统计python中的rpt文件的数量?

How to count the numbers of an rpt file in python without reading the document extensively?

我有很多数据;更准确地说,一个 8 GB 的 rpt 文件;

现在在处理它之前我想知道实际有多少行 - 这有助于我稍后找出处理需要多长时间等; 现在读取 python 中那个大小的 rpt 文件作为一个整体显然是行不通的,所以我需要逐行读取;为了找出我写的那个简单 python 脚本的行数:

import pandas as pd

counter=0

for line in pd.read_fwf("test.rpt", chunksize=1):
    counter=counter+1
print(counter)

这似乎工作得很好 - 但是我意识到它很慢并且没有必要真正阅读所有行;

有没有办法不用读取每一行就可以得到行数?

非常感谢

您不需要使用 python。使用

 wc -l 

将是完成这项工作的正确工具。

我不熟悉 .rpt 文件格式,但如果它可以作为文本文件读取(如果您使用 pd.read_fwf,我假设它可以)那么你可以只使用 Python 的内置函数来实现 input/output。

with open('test.rpt', 'r') as testfile:
    for i, line in enumerate(testfile):
        pass
    # Add one to get the line count
    print(i+1)

这将允许您(有效地)遍历文件对象的每一行。内置 enumerate 函数会在您阅读时对每一行进行计数。