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))

Probar solución en Google Colab

Fuente del ejercicio: https://es.py4e.com/html3/07-files