Imprimir Probabilidad de Spam
Descripción
Escribe un programa que solicite un nombre de archivo y lea ese archivo buscando las líneas que tengan la siguiente forma:
X-DSPAM-Confidence: 0.8475
Prueba tu programa con los archivos
www.py4e.com/code3/mbox-short.txt
- y
www.py4e.com/code3/mbox.txt
Cuando encuentres una línea que comience con “X-DSPAM-Confidence:” extrae el número decimal de la línea. Cuenta esas líneas y calcula el total acumulado de los valores de “spam-confidence”.
Cuando llegues al final del archivo, imprime el valor promedio de “spam confidence”.
Ejemplo de ejecución
Ingresa un nombre de archivo: mbox.txt
Promedio spam confidence: 0.894128046745
Ingresa un nombre de archivo: mbox-short.txt
Promedio spam confidence: 0.750718518519
Solución
Mostrar solución
COMIENZO_LINEA = 'X-DSPAM-Confidence: '
nombre_archivo = input('Ingresa un nombre de archivo: ')
with open(nombre_archivo, 'r') as archivo:
len_comienzo_linea = len(COMIENZO_LINEA)
suma_prob_spam = 0
cantidad_mensajes = 0
for linea in archivo:
pos = linea.find(COMIENZO_LINEA)
if pos != -1:
prob_spam_mensaje = float(linea[len_comienzo_linea : ])
suma_prob_spam += prob_spam_mensaje
cantidad_mensajes += 1
promedio_prob_spam = suma_prob_spam / cantidad_mensajes
print('Promedio spam confidence: ' + str(promedio_prob_spam))
Fuente del ejercicio: https://es.py4e.com/html3/07-files