在Python中读取日志文件并输出特定文本
我有一段代码,它可以在日志文件被写入时读取最后一行。我想打印出日志中出现的错误,基本上是当一行以 line.startswith('Error')
开头时开始打印,然后当一行以 line.startswith('End of Error')
开头时停止打印。我的代码在下面,谁能帮我一下呢?
log = 'C:\mylog.log'
file = open(log, 'r')
res = os.stat(log)
size = res[6]
file.seek(size)
while 1:
where = file.tell()
line = file.readline()
if not line:
time.sleep(1)
file.seek(where)
else:
if line.startswith('Error'):
#print lines until you come to 'End of Error'
2 个回答
0
使用subprocess
模块可能会更简单,这样你可以直接运行tail -F
(注意大写的F,这个在GNU平台上可以用)并处理它的输出。
1
在循环开始之前,先设置一个标志:
in_error = False
然后根据需要来开启和关闭这个标志:
if line.startswith('Error'):
in_error = True
elif line.startswith('End of Error'):
print(line)
in_error = False
if in_error:
print(line)