Procesando archivos de texto: continuación
El último ejemplo que queremos presentar muestra un rasgo muy interesante del objeto devuelto por la función open()
en modo de texto.
Creemos que puede sorprenderte - el objeto es una instancia de la clase iterable.
¿Extraño? De ningúna manera. ¿Usable? Si, por supuesto.
El protocolo de iteración definido para el objeto del archivo es muy simple: su método __next__
solo devuelve la siguiente línea leída del archivo.
Además, puedes esperar que el objeto invoque automáticamente a close()
cuando cualquiera de las lecturas del archivo lleguen al final del archivo.
Mira el editor y ve cuán simple y claro se ha vuelto el código.
Code
from os import strerrortry:
ccnt = lcnt = 0
for line in open('text.txt', 'rt'):
lcnt += 1
for ch in line:
print(ch, end='')
ccnt += 1
print("\n\nCaracteres en el archivo: ", ccnt)
print("Lineas en el archivo: ", lcnt)
except IOError as e:
print("Se produjo un error de E/S: ", strerr(e.errno))
{{ dockerServerErrorMsg }}
×
{{ errorMsg }}
×
{{ successMsg }}
×