2012-05-17 75 views
32

Ya creé un archivo txt usando python con algunas líneas de texto que se leerán con un programa simple. Sin embargo, estoy teniendo problemas para volver a abrir el archivo y escribir líneas adicionales en el archivo en una parte posterior del programa. (Las líneas serán escritos a partir de la entrada de usuario obtenida más adelante.)cómo agregar líneas al archivo existente usando python

with open('file.txt', 'w') as file: 
    file.write('input') 

Esto es suponiendo que 'archivo.txt' se ha abierto antes y escrito en. En la apertura de este sin embargo un segundo tiempo, con el código que Actualmente tengo, tengo que borrar todo lo que estaba escrito antes y volver a escribir la nueva línea. ¿Hay alguna manera de evitar que esto ocurra (y posiblemente reducir el código excesivo de abrir el archivo de nuevo)?

+5

Do no use "file" como nombre de variable porque está sombreando el tipo de archivo incorporado – Fabian

Respuesta

37

Si desea agregar al archivo, ábralo con 'a'. Si desea buscar a través del archivo para encontrar el lugar donde debe insertar la línea, use 'r+'. (docs)

31

Abra el archivo para 'anexar' en lugar de 'escribir'.

with open('file.txt', 'a') as file: 
    file.write('input') 
+11

¡Nota! Esto no agregará una nueva línea. Si necesita agregar una línea a un archivo de texto (a diferencia de un fragmento de línea), finalice los datos con '\ n', por ejemplo,' archivo.write ('entrada \ n') ' –

9

Uso 'a', 'a' significa append. Cualquier cosa escrita en un archivo abierto con el atributo 'a' se escribe al final del archivo.

with open('file.txt', 'a') as file: 
    file.write('input') 
6

las respuestas anteriores son correctas, pero que deben añadir los datos como una nueva línea, en lugar de virar sobre el extremo de la última línea en el archivo, utilice la siguiente:

with open('file.txt', 'a') as file: 
    file.writelines('input') 
+0

Esto es realmente incorrecto. 'file.write (arg)' escribe 'arg' en el archivo tal como está. 'file.writelines (arg)' escribe todos los elementos de 'arg' (por ejemplo, caracteres de una cadena o elementos en una lista) en el archivo _without_any_separators_. En este ejemplo, ambos hacen exactamente lo mismo. Ver https://docs.python.org/3/library/io.html. Siempre que esté escribiendo archivos, debe agregar los finales de línea usted mismo. –

Cuestiones relacionadas