Парсинг файлов на python

Есть файл total.txt, который нужно пропарсить и достать значения. Написал код, который тащит значение из Total > 20.0 и застрял. Нужно вытаскивать значения по Tokens eth: который больше 20.0. Хелп плез.

outlist = []
flag = False
def dump(list_, flag_):
    if list_ and flag_:
        print('\n'.join(list_))
    return [], False
with open('total.txt') as file:
    for line in map(str.strip, file):
        if line.startswith('='):
            outlist, flag = dump(outlist, flag)
        else:
            tokens = line.split()
            if len(tokens) == 3 and tokens[1] == 'Total:':
                try:
                    flag = float(tokens[2][:-1]) > 20.0
                except ValueError:
                    pass
            outlist.append(line)
dump(outlist, flag)

сама структура в тексте на фото. Буду рад помощи!

============ 
| another grave mushroom enroll full trip sort notice tips bacon exact slab 
| 0xb34a47885262f9d8673dc77de34Fss961134f09fb03620b29d282c32ee6932be 
| 0xD0b2612a6eE3111114b43b21552C6F08A251D38D 
| Total: 47.62874464666479$ 
| 
| 
| Tokens eth: 
| 20.608732$ MANA 
| 
| Protocols cro: 
| 17.840052$ VVS Finance 
| 8.953779$ V3S Finance 
============ –

введите сюда описание изображения


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

Автор решения: Сергей Шашко
lst ='============ \n ' \
     '| another grave mushroom enroll full trip sort notice tips bacon exact slab\n' \
     '| 0xb34a47885262f9d8673dc77de34Fss961134f09fb03620b29d282c32ee6932be ' \
     '| 0xD0b2612a6eE3111114b43b21552C6F08A251D38D \n' \
     '| Total: 47.62874464666479$ \n' \
     '| \n' \
     '| \n' \
     '| Tokens eth: \n' \
     '| 20.608732$ MANA \n' \
     '| \n' \
     '| Protocols cro: \n' \
     '| 17.840052$ VVS Finance \n' \
     '| 8.953779$ V3S Finance \n' \
     '============ \n'
txt = lst.split('============')
for lst_ll in txt:
     lst_l = lst_ll.split('\n')
     print(lst_l)
     for index, i in enumerate(lst_l):
          if i.find('Total:') >= 0:
               total = (float(lst_l[index].split()[2].replace('$', '')))
               token = (float(lst_l[index+4].split()[1].replace('$', '')))
               break

if (total > 20) and (token > 20):
     print(f'{total= }')
     print(f'{token= }')
→ Ссылка