Correos enviados por persona


Descripción

Para probar el programa puedes usar los archivos:

Escribe un programa para leer un archivo historial de correos y, utilizando un diccionario, construir un histograma de cuántos mensajes han llegado de cada dirección de correo electrónico.

Para hacer esto busca las líneas que comienzan con “From” (ignorando las que empiezan con “From:”, es decir que tienen el símbolo : después de “From”), la segunda palabra en estas líneas es el remitente.

Al final del programa imprime el diccionario.

Ejemplo de ejecución

Ingresa un nombre de archivo: mbox-short.txt
{'gopal.ramasammycook@gmail.com': 1, 'louis@media.berkeley.edu': 3,
'cwen@iupui.edu': 5, 'antranig@caret.cam.ac.uk': 1,
'rjlowe@iupui.edu': 2, 'gsilver@umich.edu': 3,
'david.horwitz@uct.ac.za': 4, 'wagnermr@iupui.edu': 1,
'zqian@umich.edu': 4, 'stephen.marquard@uct.ac.za': 2,
'ray@media.berkeley.edu': 1}

Solución

Mostrar solución
mensajes_remitente = {}

nombre_archivo = input('Ingresa un nombre de archivo: ')

with open(nombre_archivo, 'r') as archivo:
  for linea in archivo:
    if linea.startswith('From '):
      remitente = linea.split(' ')[1]
      mensajes_remitente[remitente] = mensajes_remitente.get(remitente, 0) + 1

print(str(mensajes_remitente))

Probar solución en Google Colab

Fuente del ejercicio: https://es.py4e.com/html3/09-dictionaries