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.
¡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 usaswrite()
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.