0

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

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

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

非常感谢

4

2 回答 2

1

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

于 2020-04-17T20:38:32.867 回答
0

你不需要使用python。使用

 wc -l 

将是该工作的正确工具。

于 2020-04-17T20:09:34.857 回答