如何在不阅读文档的情况下统计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
函数会在您阅读时对每一行进行计数。
我有很多数据;更准确地说,一个 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
函数会在您阅读时对每一行进行计数。