Как убрать лишнее?

У меня есть скрипт

import os
import time

def follow(thefile):
    thefile.seek(0, 2)
    while True:
        line = thefile.readline()
        if not line:
            time.sleep(0.1)
            continue
        yield line

if __name__ == "__main__":
    logfile = open(os.getenv("APPDATA") + "/.minecraft/logs/latest.log", "r")
    loglines = follow(logfile)
    for line in loglines:
        if "[CHAT] Serverexe" in line:
            print(line.strip("\n"))

котоырй отслеживает логи майна и выводит в консоль сообщение от определённого игрока, так вот, когда этот игрок написал сообщение, скрипт его нашёл и вывел, то выводит он его так

[19:20:04] [Client thread/INFO]: [CHAT] Serverexe: oooooooooops
[19:20:07] [Client thread/INFO]: [CHAT] Serverexe: sorry
[19:20:15] [Client thread/INFO]: [CHAT] Serverexe: bro?

тут много лишнего, как мне убрать это и оставить только вот это

Serverexe: oooooooooops
Serverexe: sorry
Serverexe: bro?

Ответы (2 шт):

Автор решения: GrAnd

Можно использовать метод partition() у строки:

>>> line = '[19:20:04] [Client thread/INFO]: [CHAT] Serverexe: oooooooooops'
>>> line.partition('[CHAT] ')[2]
'Serverexe: oooooooooops'

Или использовать срез:

>>> line[line.find('[CHAT] ')+7:]
'Serverexe: oooooooooops'
→ Ссылка
Автор решения: Alpensin

Хоть способ @GrAnd c partition лучше, т.к. быстрее, выложу своё решение с регуляркой, чтоб не пропадало

import os
import time
import re

def follow(thefile):
    thefile.seek(0, 2)
    while True:
        line = thefile.readline()
        if not line:
            time.sleep(0.1)
            continue
        yield line

if __name__ == "__main__":
    pattern = '\[CHAT\] (Serverexe:.*)\n?'
    
    logfile = open(os.getenv("APPDATA") + "/.minecraft/logs/latest.log", "r")
    loglines = follow(logfile)
    for line in loglines:
        if "[CHAT] Serverexe" in line:
            result = re.search(pattern, line)[1]
            print(result)
→ Ссылка