Procesamiento de archivos de texto: continuación
La lectura del contenido de un archivo de texto se puede realizar utilizando diferentes métodos; ninguno de ellos es mejor o peor que otro. Depende de ti cuál de ellos prefieres y te gusta.
Algunos de ellos serán a veces más prácticos y otros más problemáticos. Se flexible. No tengas miedo de cambiar tus preferencias.
El más básico de estos métodos es el que ofrece la función read()
, la cual pudiste ver en acción en la lección anterior.
Si se aplica a un archivo de texto, la función es capaz de:
- Leer un número determinado de caracteres (incluso solo uno) del archivo y devolverlos como una cadena.
- Leer todo el contenido del archivo y devolverlo como una cadena.
- Si no hay nada más que leer (el cabezal de lectura virtual llega al final del archivo), la función devuelve una cadena vacía.
Comenzaremos con la variante más simple y usaremos un archivo llamado text.txt
. El archivo contiene lo siguiente:
Lo hermoso es mejor que lo feo.
Explícito es mejor que implícito.
Simple es mejor que complejo.
Complejo es mejor que complicado.
Ahora observa el código en el editor y analicémoslo.
La rutina es bastante simple:
- Se usa el mecanismo try-except y se abre el archivo con el nombre (text.txt en este caso).
- Intenta leer el primer caracter del archivo (
ch = s.read(1)
). - Si tienes éxito (esto se demuestra por el resultado positivo de la condición
while
), se muestra el caracter (nota el argumentoend=
,¡es importante! ¡No querrás saltar a una nueva línea después de cada caracter!). - Se actualiza el contador
(
cnt
). - Intenta leer el siguiente carácter y el proceso se repite.
Code
from os import strerrortry:
cnt = 0
s = open('text.txt', "rt")
ch = s.read(1)
while ch != '':
print(ch, end='')
cnt += 1
ch = s.read(1)
s.close()
print("\n\nCaracteres en el archivo: ", cnt)
except IOError as e:
print("Se produjo un error de E/S: ", strerr(e.errno))
{{ dockerServerErrorMsg }}
×
{{ errorMsg }}
×
{{ successMsg }}
×