Una variable desaparece cuando termina el programa. Un archivo permite que la información permanezca para la siguiente ejecución: una configuración, una nota, una lista de tareas o resultados calculados.
Empezaremos con texto sencillo. No necesitas aprender todavía formatos como JSON o CSV; llegarán en dos lecciones.
Elegir r, w o a a partir de la intención y predecir si el contenido se leerá, reemplazará o añadirá.
Piensa en tres decisiones: ruta, modo y contenido
Para abrir un archivo necesitas saber dónde está, qué quieres hacer y cómo tratar su contenido.
"notas.txt": la ruta."r"o"w": leer o escribir.encoding="utf-8": cómo convertir texto a bytes y viceversa.
Separar mentalmente esas tres decisiones hace que open() deje de parecer una colección de parámetros arbitrarios.
with se ocupa de cerrar el archivo incluso si algo sale mal
with open("mensaje.txt", "w", encoding="utf-8") as archivo:
archivo.write("Hola desde Python")
print("Guardado")Dentro del bloque, archivo representa el archivo abierto. Al salir del with, Python lo cierra por ti.
Ese cierre importa porque el sistema operativo mantiene recursos asociados al archivo y porque parte de la escritura puede estar pendiente hasta que se cierra correctamente.
El modo w reemplaza; el modo a añade
with open("registro.txt", "w", encoding="utf-8") as archivo:
archivo.write("Inicio\n")
with open("registro.txt", "a", encoding="utf-8") as archivo:
archivo.write("Fin\n")"w" crea el archivo o sustituye su contenido. "a" escribe al final. Confundirlos puede borrar información, así que conviene elegir el modo antes de escribir código.
Leer todo es cómodo cuando el archivo es pequeño
with open("saludo.txt", "w", encoding="utf-8") as archivo:
archivo.write("Hola, Ada")
with open("saludo.txt", "r", encoding="utf-8") as archivo:
contenido = archivo.read()
print(contenido)read() devuelve un string. Para archivos pequeños es la forma más directa de empezar. Más adelante, si trabajas con archivos enormes, podrás leer por líneas o por partes.
Elige el modo antes de abrir el archivo
rleer lo que ya existewescribir reemplazandoaañadir al finalSi ya existe “Inicio ” y quieres conservarlo antes de escribir “Fin ”, ¿qué modo expresa tu intención?
El primer bloque crea el archivo. Corrige solo el modo del segundo bloque para añadir sin borrar lo anterior.
Inicio Fin
La salida aparecerá aquí.
Necesito una pista
- El segundo bloque no debe reemplazar el contenido creado por el primero.
- Usa el modo cuyo nombre mental sea “añadir”.
Ver una solución razonada
with open("registro.txt", "w", encoding="utf-8") as archivo:
archivo.write("Inicio\n")
with open("registro.txt", "a", encoding="utf-8") as archivo:
archivo.write("Fin\n")
with open("registro.txt", "r", encoding="utf-8") as archivo:
print(archivo.read(), end="")El error más costoso aquí no siempre produce una excepción
Abrir por accidente un archivo existente con "w" puede funcionar perfectamente y, aun así, borrar su contenido anterior.
Antes de escribir, formula la intención en castellano: «quiero reemplazar» → w; «quiero añadir» → a; «solo quiero leer» → r.
Antes de pasar a rutas, domina esta pequeña historia completa
Abres un archivo con el modo adecuado, haces el trabajo dentro de with, sales del bloque y Python lo cierra. Esa secuencia es más importante que memorizar todos los métodos disponibles.
puedes guardar una línea de texto, volver a leerla y explicar por qué prefieres with open(...) frente a gestionar el cierre manualmente.