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.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.
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.
frutas = ["Manzana", "Pera", "Plátano"]
with open('frutas.txt', 'w') as archivo:
for fruta in frutas:
archivo.write(fruta + "\n")
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.
with open('mensaje.txt', 'w') as archivo:
archivo.write("Hola, este es un mensaje guardado.")
with open('mensaje.txt', 'a') as archivo:
archivo.write("\nEste es un mensaje adicional.")
with open('mensaje.txt', 'r') as archivo:
for linea in archivo:
print(linea.strip())
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'))
with open(...) siempre que sea posible.
\n manualmente si usas
write() y deseas saltos de línea.
'x', ya que lanza un error si ya existe.
.strip() al leer para
eliminar espacios o saltos de línea innecesarios.