Leer datos de un archivo
Al leer un archivo de texto, el flujo de bytes ingresa a la entrada del programa secuencialmente uno tras otro, por lo que el archivo proporciona acceso secuencial a los datos. Es decir, si necesitamos leer el décimo valor del archivo, primero debemos leer los 9 anteriores.
La lectura de una sola línea de un archivo permite que se ejecute el método
readline()
. Este método se llama en una variable de archivo.
Aleta = abrir("entrada.txt")
s = Fin.readline()
Se pueden aplicar varios métodos a la cadena de lectura, similares a los que se usan cuando se lee desde el teclado (split()
, map()
, etc.). Por ejemplo, si hay dos números separados por un espacio en una línea de un archivo, puede contarlos de la siguiente manera:
Aleta = abrir("entrada.txt")
s = Fin.readline().split() # dividir línea en espacios s = ["2007", "2021"]
a, b = mapa(int, s) # aplicar el método int() a todos los elementos de la lista s,
# es decir, convertir la cadena de caracteres en un número
# a, b = int(s[0], s[1]) # esto es lo mismo que la línea de arriba
# a, b = [int(x) for x in s] # igual que un generador
El método read()
lee todo el contenido del archivo y devuelve una cadena que puede contener los caracteres '\n
'. Si se pasa un parámetro entero al método read()
, no se leerá más del número especificado de caracteres. Por ejemplo, puede leer un archivo byte a byte utilizando el método read(1)
.
.
Cuando se abre un archivo, el puntero que determina la ubicación actual en el archivo se establece al principio del archivo y, cuando se lee, se desplaza a la posición que sigue a la lectura de datos. Al escribir, el puntero se mueve a la siguiente posición libre.