首页 > 解决方案 > 如何在不广泛阅读文档的情况下计算python中rpt文件的数量?

问题描述

我有很多数据;更准确地说,是一个 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)

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

有没有办法在不读取每一行的情况下获得行数?

非常感谢

标签: pythonpandasrpt

解决方案


我不熟悉.rpt文件格式,但如果它可以作为文本文件读入(我假设如果你正在使用它可以pd.read_fwf),那么你可能只使用 Python 的内置输入/输出。

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函数将在您阅读时计算每一行。


推荐阅读