logo

Python s'afegeix a un fitxer

En llegir o escriure en un fitxer, el mode d'accés regula el tipus d'operacions possibles en el fitxer obert. Es refereix a com s'utilitzarà el fitxer un cop obert. Aquests modes també defineixen la ubicació del controlador del fitxer al fitxer. La definició d'aquests modes d'accés és la següent:

    Només adjuntar ('a'): obre el fitxer per escriure. Afegiu i llegiu (‘a+’): obriu el fitxer per llegir i escriure.

Quan el fitxer s'obre en mode d'afegir a Python, el mànec es col·loca al final del fitxer. Les dades que s'escriuen s'inseriran al final, després de les dades existents.



Exemple 1: Programa Python per il·lustrar el mode Append vs write.

Python 3








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()>

>

>

string.replaceall a java

Sortida:

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

Exemple 2: Afegeix dades d'una línia nova

En l'exemple anterior de maneig de fitxers , es pot veure que les dades no s'afegeixen de la nova línia. Això es pot fer escrivint el caràcter de nova línia ' ' al fitxer.

Python 3

què vol dir això xd




# 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()>

>

>

Sortida:

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

Nota: ' ' es tracta com un caràcter especial de dos bytes.

Exemple 3: Ús de la instrucció With a Python

amb declaració s'utilitza en el maneig d'excepcions per fer que el codi sigui més net i molt més llegible. Simplifica la gestió de recursos comuns com els fluxos de fitxers. A diferència de les implementacions anteriors, no cal cridar a file.close() quan s'utilitza la instrucció with. La declaració amb en si garanteix l'adquisició i l'alliberament adequats dels recursos.

Python 3


data de javascript



# 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())>

>

>

Sortida:

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

Nota: Per saber més sobre amb declaració clica aquí .

Utilitzant el mòdul Shuil:

Aquest enfocament utilitza el mètode shutil.copyfileobj() per afegir el contingut d'un altre fitxer (source_file) a 'file.txt'. Això pot ser útil si voleu afegir el contingut d'un fitxer a un altre sense haver de llegir primer el contingut a la memòria.

Enfocament:
El codi utilitza la funció shutil.copyfileobj() per copiar el contingut de l'objecte source_file a un fitxer nou anomenat file.txt. La instrucció with s'utilitza per obrir i tancar automàticament el fitxer, utilitzant l'objecte de fitxer f.

Complexitat temporal:
La complexitat temporal de la funció shutil.copyfileobj() és proporcional a la mida del fitxer que es copia, ja que necessita llegir i escriure cada byte del fitxer. Per tant, la complexitat temporal del codi és O(n), on n és la mida del fitxer_font.

Complexitat espacial:
La complexitat espacial del codi és O(1), ja que no assigna cap memòria addicional més enllà de la necessària per als objectes fitxer source_file i f. La funció shutil.copyfileobj() copia el contingut del fitxer en trossos, de manera que no cal carregar tot el fitxer a la memòria alhora.

En general, el codi té una complexitat temporal lineal i una complexitat espacial constant, on la complexitat temporal és proporcional a la mida del fitxer que s'està copiant.

Python 3

matriu de bytes a la cadena java




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

>

>