Я предполагаю, что ваш файл журнала отформатирован как
session 321: abc de
567 89 abd ec
session 12345: ghi lm
763 98 dba ce
и что вы хотите сделать, это найти соответствующий сеанс и все последующие строки, пока не увидите пустую строку.
import collections
import re
sessionData = collections.defaultdict(list)
lookfor = [12345, 13981]
newSession = re.compile(r'session (\d+):')
with open('my_log_file.txt', 'r') as inf:
session = None
for ln in inf:
ln = ln.rstrip()
if len(ln):
match = newSession.match(ln)
if match:
s = int(match.group(0))
if s in lookfor:
session = s
if session:
print ln
sessionData[session].append(ln)
else:
session = None
sessionData теперь является ключом сеанса;для каждого сеанса он содержит список всех связанных строк.Используя приведенные выше примеры данных, sessionData будет выглядеть как
{ 12345: ["session 12345: ghi lm", " 763 98 dba ce"] }