0 votos

Quiero sumar los datos de un archivo de texto:
 

BTC={'Cantidad':9.0,'Precio total':441000.00,'Codigo':708060.0}
ETH={'Cantidad':8.0,'Precio total':24885.29,'Codigo':447050.0}
ADA={'Cantidad':6.0,'Precio total':16.8,'Codigo':447050.0}
BNB={'Cantidad':9.0,'Precio total':4308.5,'Codigo':889562.0}
USDT={'Cantidad':4.0,'Precio total':4.0,'Codigo':102030.0}
XRP={'Cantidad':0.0,'Precio total':0.0,'Codigo':457080.0}



con el siguiente codigo lo vuelvo diccionario:
 

nombre_archivo = "registro.txt"
archivo = open(nombre_archivo,"r")

texto = archivo.read()
archivo.close()

lineas = texto.splitlines()
terminos = texto.split("=")

diccionario={}
contador=0
for linea in lineas:
    termino = linea.split("=")
    diccionario[termino[0]]=termino[1]
    contador+=1

print(contador)
print(diccionario)

for k,v in diccionario.items():
    print(k,v)



que muestra:
 

BTC {'Cantidad':9.0,'Precio total':441000.00,'Codigo':708060.0}
ETH {'Cantidad':8.0,'Precio total':24885.29,'Codigo':447050.0}
ADA {'Cantidad':6.0,'Precio total':16.8,'Codigo':447050.0}
BNB {'Cantidad':9.0,'Precio total':4308.5,'Codigo':889562.0}
USDT {'Cantidad':4.0,'Precio total':4.0,'Codigo':102030.0}
XRP {'Cantidad':0.0,'Precio total':0.0,'Codigo':457080.0}


ahora lo que quiero es sumar el precio total de cada linea.

por en Python

1 Respuesta

0 votos

Para lo que necesitas, lo mejor será utilizar una expresión regular para extraer el dato que requieres, puedes utilizar algo así (Lo he hecho a ojo, puede que tengas que realizar algún cambio):

# Para cada línea leída:
linea = "BTC {'Cantidad':9.0,'Precio total':441000.00,'Codigo':708060.0}"

import re
re_s = re.search(r"'Precio total':([^,]*)", linea, re.IGNORECASE)

if re_s:
    precio_total = float(re_s.group(1))

Luego solo te quedará sumar los valores.

por