Manejo de Archivos

Escritura de archivos


Para escribir en un archivo, también usamos la función open(), pero cambiando el modo de apertura:

  • 'w': para sobrescribir (crea uno nuevo si no existe).
  • 'a': para añadir al final del archivo sin borrar su contenido.
  • 'x': para crear un nuevo archivo únicamente si no existe.
Método write():

Escribe una cadena de texto en el archivo:

with open('salida.txt', 'w') as archivo:
    archivo.write("Este es el primer mensaje.\n")
    archivo.write("Este es el segundo mensaje.\n")

Importante: write() no añade un salto de línea automáticamente, por lo que si quieres escribir en varias líneas, debes incluir \n tú mismo.

Guardar una lista de datos línea por línea:
frutas = ["Manzana", "Pera", "Plátano"]

with open('frutas.txt', 'w') as archivo:
    for fruta in frutas:
        archivo.write(fruta + "\n")
Método writelines():

Este método espera una lista de cadenas y las escribe tal cual:

lineas = ["Línea 1\n", "Línea 2\n", "Línea 3\n"]

with open('lineas.txt', 'w') as archivo:
    archivo.writelines(lineas)

Si las cadenas no contienen \n, todas se escribirán en una misma línea.


Ejemplos prácticos:

Crear un archivo y escribir en él:
with open('mensaje.txt', 'w') as archivo:
    archivo.write("Hola, este es un mensaje guardado.")
Añadir contenido a un archivo existente:
with open('mensaje.txt', 'a') as archivo:
    archivo.write("\nEste es un mensaje adicional.")
Leer contenido línea por línea:
with open('mensaje.txt', 'r') as archivo:
    for linea in archivo:
        print(linea.strip())
Comunicación entre funciones mediante archivos:
def escribe_fichero(nombre, mensaje):
    with open(nombre, 'w') as archivo:
        archivo.write(mensaje)

def lee_fichero(nombre):
    with open(nombre, 'r') as archivo:
        return archivo.read()

escribe_fichero('comunicacion.txt', 'Hola desde otra función.')
print(lee_fichero('comunicacion.txt'))

Recomendaciones finales:

  • Usa with open(...) siempre que sea posible.
  • Añade \n manualmente si usas write() y deseas saltos de línea.
  • Verifica que el archivo exista si usas el modo 'x', ya que lanza un error si ya existe.
  • Usa métodos como .strip() al leer para eliminar espacios o saltos de línea innecesarios.