Парсинг файлов на 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= }')
