gpt4 book ai didi

python - 打印文件中最后匹配的行

转载 作者:行者123 更新时间:2023-11-28 22:37:33 26 4
gpt4 key购买 nike

我正在从 Windows Server 读取各种日志,当前正在抓取文件夹中的最新日志。

然后我想扫描该日志并只打印包含特定字符串的最后一行。

以下将打印包含字符串的所有行 -

def read_logfile(master_log):
for line in master_log:
if line.contains('[76:Health]:'):
print line

如何让它只打印找到的最后一个匹配项?

最佳答案

做到这一点的简单方法就是在每次命中时存储,并在循环外打印:

def read_logfile(master_log):
lastmatch = None
for line in master_log:
if '[76:Health]:' in line:
lastmatch = line
if lastmatch is not None:
print lastmatch

您可以使用 collections.deque 泛化到最后的 n 个匹配项使用适当的 maxlen,所以您只需 append 所有匹配项,一旦超过限制就推出最旧的匹配项。以下代码与上面的代码相同,但允许打印更多行的第二个参数:

from collections import deque

def read_logfile(master_log, linecount=1):
lastmatches = deque(maxlen=linecount)
for line in master_log:
if '[76:Health]:' in line:
lastmatches.append(line)
for line in lastmatches:
print line

关于python - 打印文件中最后匹配的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36430978/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com