es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

El archivo de texto no añade la letra “a” después de ser abierto en modo de escritura (“w”) en Python.

Después de abrir un archivo de texto en modo “w” y escribir algo en él, cuando intento abrir el mismo archivo en modo de añadir (porque quiero mantener el contenido de la primera línea igual), sobrescribe el contenido en lugar de agregarlo debajo.

A continuación se muestra el ejemplo:

Código:

hand1 = open(“test.txt”, “w”)
hand1.write(“Buenos días”)
hand1.close()

hand2 = open(“test.txt”, “a”)
hand2.write(“\n” + “Hola”)
hand2.close()

Archivo de texto:

Buenos días

Hola

No importa cuántas veces ejecute este archivo python, aún me da la misma salida que es:

Archivo de texto:

Buenos días

Hola

donde espero que la salida sea (si ejecuto el archivo python varias veces):

Archivo de texto:

Buenos días
Hola
Hola
Hola

¿Alguien sabe cómo solucionar esto? “Hola” podría estar allí en varias líneas si el modo “w” no se abre.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    El problema es que al abrir un archivo de texto en modo “w”, sobrescribe todo el archivo. Para preservar el contenido actual del archivo, debemos abrir el archivo en modo “a” desde el principio.

    Para solucionar el problema, debemos modificar la apertura inicial del archivo de la siguiente manera:

    hand1 = open("test.txt", "a")
    hand1.write("Buenos días")
    hand1.close()
    

    Esto abrirá el archivo en modo “a”, lo que significa que el contenido actual del archivo (si lo hay) no se sobrescribirá. Luego, podemos seguir agregando nuevo contenido al archivo como antes:

    hand2 = open("test.txt", "a")
    hand2.write("\n" + "Hola")
    hand2.close()
    

    Con esta modificación, el archivo contendrá el resultado esperado después de ejecutar el archivo de Python varias veces:

    Buenos días
    Hola
    Hola
    Hola
    

Comments are closed.