如何在日志中找到字符串的最后一个实例?



我做了一个日志文件,我想拿走它,想找到特定用户在线的最后一个实例,日志文件如下所示:

----------------------------------------------
Logging started: 2019-12-05 12:42:19.591833 
Num of members in Test Server: 12
Members: 
test12345#0720
A part of server: Test Server
Current status: idle
Current activity: None 
Logging complete
-----------------

现在这重复多次,因为它每X时间添加一个新日志,我想找到 Z 用户上次在线的时间。(我有用户的姓名和鉴别器(

您可以逐行读取文件,并将所有内容收集到一个列表中,直到一个Logging complete,然后检查用户是否存在并将候选变量存储在辅助变量中,然后继续空列表。
最后,辅助变量将包含用户在场时的最后一个日志块。

像这样:

user="test12345#0720"
last=None
current=[]
with open("test.log") as f:
for line in f:
current.append(line.strip()) # line contains the line-break character(s) too
if line.startswith("Logging complete"): # if there may be extra info in the line
if user in current:
last=current
current=[]
if last:
print("n".join(last))

(它也收集了------行,摆脱它们留给读者(

最新更新