我现在有一个非常简单的脚本,使用enumerate()
来计算文本文件中的行数:
i = 0
f = open("C:/Users/guest/Desktop/file.log", "r")
for i, line in enumerate(f):
pass
print i + 1
f.close()
这需要大约3分半钟来处理一个15GB的日志文件,其中包含约3千万行记录。如果能在两分钟或更短时间内完成处理,那就太好了,因为这些都是每天的日志,而我们需要对一个月的日志进行分析,因此代码将需要处理约30个大小为15GB的日志文件——可能需要1个半小时以上的时间,我们希望尽量减少服务器的时间和内存负荷。
我也可以接受一个好的近似/估算方法,但它需要精确到4个有效数字...
谢谢!
\n
字符的数量。 - arothwith open(fname) as f: print sum(1 for line in f)
。 - wim