我有一段代码在写入日志时读取日志文件的最后一行。我想打印日志中出现的错误,基本上在line.startswith('Error')
时开始打印,在line.startwith('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'
答案 0 :(得分: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)
答案 1 :(得分:0)
使用subprocess
模块简单地运行tail -F
(资本F,在GNU平台上可用)并处理输出可能更容易。