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))
Fuente del ejercicio: https://es.py4e.com/html3/09-dictionaries