在Python中读取日志文件并输出特定文本

1 投票
2 回答
3689 浏览
提问于 2025-04-17 03:06

我有一段代码,它可以在日志文件被写入时读取最后一行。我想打印出日志中出现的错误,基本上是当一行以 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)

撰写回答