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.

Almacenando datos de entrada de usuarios en un archivo de texto

Así que tengo el siguiente código (no mío, pero quiero modificarlo):

def main():
    outfile = open("data.txt","w")
    fname = input("Por favor ingrese su primer nombre:")
    lname = input("Por favor ingrese su apellido:")
    outfile.write(fname)
    outfile.write("\t")
    outfile.write(lname)
    outfile.close()

main()

Lo que necesito que haga es que guarde el texto en un archivo .txt (lo cual ya hace), sin embargo, cuando vuelvo a ejecutar el código, sobrescribe lo que se guarda en el archivo .txt. En lugar de sobrescribir, necesito que guarde cada nueva ejecución del código.

Estoy pensando que necesito dos soluciones aquí:

(i) Usar algún tipo de bucle.

(ii) Agregar algo.

Estoy usando una MacBook y ejecuto mis códigos desde la terminal. Cualquier ayuda sería muy apreciada.

Gracias por leer esto.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Para guardar cada nueva ejecución del código sin sobrescribir los datos anteriores en el archivo .txt, debes modificar el modo de archivo de “w” (modo de escritura) a “a” (modo de añadir) en la función open(). Esto te permitirá añadir nuevos datos al final del archivo sin sobrescribir los datos anteriores.

    Aquí está el código modificado:

    def main(): 
        # abrir el archivo en modo de añadir
        outfile = open("data.txt", "a")
        fname = input("Por favor, ingresa tu nombre: ")
        lname = input("Por favor, ingresa tu apellido: ")
        outfile.write(fname)
        outfile.write("\t")
        outfile.write(lname)
        outfile.write("\n")  # añadir una nueva línea después de cada registro
        outfile.close()
    
    main()
    

    Explicación:

    • En la función open(), cambia el segundo argumento de “w” a “a” para abrir el archivo en modo de añadir.
    • Añade el carácter “\n” al final de los datos que escribes en el archivo para agregar una nueva línea después de cada registro.
    • Elimina la llamada recursiva a main() para evitar que el código se ejecute infinitamente.

    Con estas modificaciones, cada vez que ejecutes el código, se añadirá un nuevo registro al final del archivo data.txt en lugar de sobrescribir los registros anteriores.

Comments are closed.