Manejo de Archivos

Lectura de archivos


En Python, como en muchos otros lenguajes de programación, es posible trabajar con archivos para leer, escribir o modificar su contenido. Estos archivos pueden ser de texto plano (.txt), archivos separados por comas (.csv),o incluso archivos binarios.

En este capítulo, nos centraremos principalmente en el manejo de archivos de texto, ya que son los más utilizados en la programación estructurada y permiten aprender los conceptos básicos de entrada/salida (E/S) de datos.


Abrir un archivo:

Para abrir un archivo en Python usamos la función open(), que recibe como mínimo el nombre del archivo y opcionalmente un modo de apertura:

archivo = open('datos.txt', 'r')  # Abre el archivo en modo lectura

Modos de apertura comunes:

Modo Descripción
'r' Lectura (modo por defecto).
'w' Escritura (crea o sobrescribe el archivo).
'a' Añadir contenido al final del archivo.
'x' Crear un archivo, pero falla si ya existe.
'b' Modo binario (usado con otros modos).


Métodos para leer archivos:

Una vez abierto el archivo, podemos usar distintos métodos para leer su contenido:

read():

Lee todo el contenido del archivo como una única cadena de texto:

archivo = open('datos.txt', 'r')
contenido = archivo.read()
print(contenido)
archivo.close()
readline():

Lee una línea del archivo cada vez que se llama:

archivo = open('datos.txt', 'r')
linea = archivo.readline()
while linea != '':
    print(linea, end='')  # Evitamos el doble salto de línea
    linea = archivo.readline()
archivo.close()

También puedes pasarle un número como argumento para leer una cantidad específica de caracteres:

archivo = open('datos.txt', 'r')
fragmento = archivo.readline(10)  # Lee hasta 10 caracteres
print(fragmento)
archivo.close()
readlines():

Devuelve una lista con todas las líneas del archivo:

archivo = open('datos.txt', 'r')
lineas = archivo.readlines()
for linea in lineas:
    print(linea, end='')
archivo.close()
Iterar directamente sobre el archivo:

También podemos iterar directamente sobre el archivo sin necesidad de readlines():

with open('datos.txt', 'r') as archivo:
    for linea in archivo:
        print(linea, end='')
Cerrar archivos:

Es importante cerrar los archivos cuando ya no los necesitas, para liberar recursos del sistema y evitar errores:

archivo.close()

Una forma más segura y recomendada es usar la sentencia with, que cierra automáticamente el archivo al finalizar el bloque:

with open('datos.txt', 'r') as archivo:
    datos = archivo.read()
    print(datos)
# Aquí el archivo ya está cerrado automáticamente