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