logo

Python agregar a un archivo

Mientras se lee o escribe en un archivo, el modo de acceso rige el tipo de operaciones posibles en el archivo abierto. Se refiere a cómo se utilizará el archivo una vez abierto. Estos modos también definen la ubicación del identificador de archivo en el archivo. La definición de estos modos de acceso es la siguiente:

    Agregar solo ('a'): abre el archivo para escribirlo. Agregar y leer ('a+'): abre el archivo para leer y escribir.

Cuando el archivo se abre en modo agregar en Python, el identificador se coloca al final del archivo. Los datos que se están escribiendo se insertarán al final, después de los datos existentes.



Ejemplo 1: Programa Python para ilustrar el modo Agregar versus escribir.

Python3




doble en java





file1>=> open>(>'myfile.txt'>,>'w'>)> L>=> [>'This is Delhi '>,>'This is Paris '>,>'This is London'>]> file1.writelines(L)> file1.close()> # Append-adds at last> file1>=> open>(>'myfile.txt'>,>'a'>)># append mode> file1.write(>'Today '>)> file1.close()> file1>=> open>(>'myfile.txt'>,>'r'>)> print>(>'Output of Readlines after appending'>)> print>(file1.read())> print>()> file1.close()> # Write-Overwrites> file1>=> open>(>'myfile.txt'>,>'w'>)># write mode> file1.write(>'Tomorrow '>)> file1.close()> file1>=> open>(>'myfile.txt'>,>'r'>)> print>(>'Output of Readlines after writing'>)> print>(file1.read())> print>()> file1.close()>

>

>

Producción:

Output of Readlines after appending This is Delhi This is Paris This is LondonToday Output of Readlines after writing Tomorrow>

Ejemplo 2: Agregar datos de una nueva línea

En el ejemplo anterior de manejo de archivos , se puede ver que los datos no se agregan desde la nueva línea. Esto se puede hacer escribiendo el carácter de nueva línea ' ' en el archivo.

Python3




# Python program to illustrate> # append from new line> file1>=> open>(>'myfile.txt'>,>'w'>)> L>=> [>'This is Delhi '>,>'This is Paris '>,>'This is London'>]> file1.writelines(L)> file1.close()> # Append-adds at last> # append mode> file1>=> open>(>'myfile.txt'>,>'a'>)> # writing newline character> file1.write(>' '>)> file1.write(>'Today'>)> # without newline character> file1.write(>'Tomorrow'>)> file1>=> open>(>'myfile.txt'>,>'r'>)> print>(>'Output of Readlines after appending'>)> print>(file1.read())> print>()> file1.close()>

>

estado de git -s

>

Producción:

Output of Readlines after appending This is Delhi This is Paris This is London TodayTomorrow>

Nota: ' ' se trata como un carácter especial de dos bytes.

Ejemplo 3: Usando la declaración With en Python

con declaración se utiliza en el manejo de excepciones para hacer que el código sea más limpio y mucho más legible. Simplifica la gestión de recursos comunes como flujos de archivos. A diferencia de las implementaciones anteriores, no es necesario llamar a file.close() cuando se usa la declaración with. La declaración with en sí misma garantiza la adquisición y liberación adecuadas de recursos.

Python3


carácter a int



# Program to show various ways to> # append data to a file using> # with statement> L>=> [>'This is Delhi '>,>'This is Paris '>,>'This is London '>]> # Writing to file> with>open>(>'myfile.txt'>,>'w'>) as file1:> ># Writing data to a file> >file1.write(>'Hello '>)> >file1.writelines(L)> # Appending to file> with>open>(>'myfile.txt'>,>'a'>) as file1:> >file1.write(>'Today'>)> # Reading from file> with>open>(>'myfile.txt'>,>'r+'>) as file1:> ># Reading form a file> >print>(file1.read())>

>

>

Producción:

Hello This is Delhi This is Paris This is London Today>

Nota: Para saber más sobre con declaración haga clic aquí .

Usando el módulo Shutil:

Este enfoque utiliza el métodoshutil.copyfileobj() para agregar el contenido de otro archivo (archivo_fuente) a 'archivo.txt'. Esto puede resultar útil si desea agregar el contenido de un archivo a otro sin tener que leerlo primero en la memoria.

Acercarse:
El código utiliza la funciónshutil.copyfileobj() para copiar el contenido del objeto source_file a un nuevo archivo llamado file.txt. La instrucción with se usa para abrir y cerrar automáticamente el archivo, usando el objeto de archivo f.

Complejidad del tiempo:
La complejidad temporal de la funciónshutil.copyfileobj() es proporcional al tamaño del archivo que se copia, ya que necesita leer y escribir cada byte del archivo. Por lo tanto, la complejidad temporal del código es O (n), donde n es el tamaño del archivo fuente.

Complejidad espacial:
La complejidad espacial del código es O(1), ya que no asigna ninguna memoria adicional más allá de la requerida para los objetos de archivo archivo_origen y f. La funciónshutil.copyfileobj() copia el contenido del archivo en fragmentos, por lo que no es necesario cargar todo el archivo en la memoria a la vez.

En general, el código tiene una complejidad temporal lineal y una complejidad espacial constante, donde la complejidad temporal es proporcional al tamaño del archivo que se copia.

Python3

árboles avl




import> shutil> with>open>(>'file.txt'>,>'a'>) as f:> >shutil.copyfileobj(source_file, f)>

>

>