¿Quién envía los Correos?


Descripción

Escribir un programa para leer a través de datos de una bandeja de entrada de correo.

Puedes probar el programa usando los archivos:

  • www.py4e.com/code3/mbox-short.txt
  • www.py4e.com/code3/mbox.txt

Cuándo encuentres una línea que comience con “From”, divide la línea en palabras utilizando la función split.

Estamos interesados en quién envió el mensaje, lo cual es la segunda palabra en las líneas que comienzan con “From”.

From stephen.marquard@uct.ac.za Sat Jan 5 09:14:16 2008

Tendrás que analizar la línea “From” e imprimir la segunda palabra de cada línea, después tendrás que contar el número de líneas “From” (no incluir From:) e imprimir el total al final.

Ejemplo de ejecución

> python fromcuenta.py
Ingresa un nombre de archivo: mbox-short.txt
stephen.marquard@uct.ac.za
louis@media.berkeley.edu
zqian@umich.edu

[...líneas de salida removidas...]

ray@media.berkeley.edu
cwen@iupui.edu
cwen@iupui.edu
cwen@iupui.edu
Hay 27 lineas en el archivo con la palabra From al inicio

Solución

Mostrar solución
nombre_archivo = input('Ingresa un nombre de archivo: ')
lineas_con_from = 0

with open(nombre_archivo, 'r') as archivo:
  for linea in archivo:
      if linea.startswith('From '):
          lineas_con_from += 1
          palabras = linea.split()
          print(palabras[1])
          
print('Hay ' + str(lineas_con_from) + ' lineas en el archivo con la palabra From al inicio')

Probar solución en Google Colab

Fuente del ejercicio: https://es.py4e.com/html3/08-lists