功能:主要用于日志关键字提取,并保存关键字附近行到文件中
import time
time_start=time.time()
info = "port"
old_line1 = " "
old_line2 = " "
old_line3 = " "
info = input("input you want to find:")
f = open("base.log","r")
fw = open("result.txt", "a+")
line = f.readline()
times = 1
line_number = 1
while line:
old_line3 = old_line2
old_line2 = old_line1
old_line1 = line
#print("new line:", line)
#
#print("old line:", old_line)
if line.find(info) >= 0:
#print("old_line3:", old_line3)
#print("old_line2:", old_line2)
#print("find the info:", line)
fw.write("***************************"+"\n")
fw.write("***********"+str(times)+"**************"+"\n")
fw.write("***************************"+"\n")
fw.write(str(line_number - 2)+"##old_line3:##"+old_line3)
fw.write(str(line_number - 1)+"##old_line2:##"+old_line2)
fw.write(str(line_number)+"##find the info:##"+line)
fw.write("\n")
fw.write("\n")
fw.write("\n")
times = times + 1
line = f.readline()
line_number = line_number + 1
f.close()
fw.close()
time_end=time.time()
print("use time:", time_end - time_start)
暂时的效率是:从1.5G的log文件中获取关键字,得到10000条记录大概花时30S,还是太久了。
后续加入多线程和linecache模块来达到减少时间的花费,并引入配置文件达到一键运行的效果