Ficheros

Para guardar de forma permanente los objetos en Python o almacenar los resultados de un proceso, se pueden usar archivos. Estos pueden ser de texto plano, como CSV; binarios, si se serializan los objetos directamente; o con formatos específicos, como hojas de cálculo de Excel.

# Apertura de archivos con open()
# Sintaxis: open("archivo.txt", "modo")

# Modos de apertura:
# "r"  -> Lectura (error si no existe)
# "r+" -> Lectura y escritura (error si no existe)
# "w"  -> Escritura (crea o sobrescribe)
# "w+" -> Escritura y lectura (crea o sobrescribe)
# "a"  -> Añadir (crea si no existe)
# "a+" -> Añadir y leer (crea si no existe)
# "x"  -> Creación exclusiva (error si existe)
# "b"  -> Modo binario (ej: "rb", "wb")
# "t"  -> Texto (por defecto, ej: "rt")

# Ejemplo de escritura en un archivo
txt = open("archivo.txt", "w")  # Abre en modo escritura
txt.write("Hola, mundo!\n")  # Escribe en el archivo
txt.close()  # Cierra el archivo

# Lectura completa del archivo
txt = open("archivo.txt", "r")
txt.seek(6) # Mueve el puntero/cursor al byte 6
contenido = txt.read()  # Lee todo el contenido
txt.close()
print(contenido)  # Muestra en pantalla mundo!

# Lectura línea por línea
with open("archivo.txt", "r") as txt:  # with cierra automáticamente
    linea = txt.readline()  # Lee una línea
    print(linea)  # Muestra la línea leída
# Al salir del bloque with, el archivo se cierra automáticamente
# No es necesario llamar a close()

# Leer todas las líneas como lista y escribirlas en otro archivo
with open("archivo.txt", "r") as txt:
    with open("archivo-copia.txt", "w") as copia:
        lineas = txt.readlines()  # Lista con todas las líneas
        copia.writelines(lineas)  # Escribe todas las líneas en otro archivo

# Iterar sobre las líneas
with open("archivo.txt", "r") as txt:
    for linea in txt:
        print(linea, end="")  # Muestra línea por línea

# Añadir contenido a un archivo
with open("archivo.txt", "a") as txt:
    txt.write("Nueva línea añadida.\n")  # Agrega sin borrar el contenido existente

Recursos