logo

Python se adaugă la un fișier

În timpul citirii sau scrierii într-un fișier, modul de acces guvernează tipul de operațiuni posibile în fișierul deschis. Se referă la modul în care fișierul va fi utilizat odată ce este deschis. Aceste moduri definesc, de asemenea, locația mânerului fișierului în fișier. Definiția acestor moduri de acces este următoarea:

    Numai adăugați (‘a’): deschideți fișierul pentru scriere. Adăugați și citiți (‘a+’): deschideți fișierul pentru citire și scriere.

Când fișierul este deschis în modul de adăugare în Python, mânerul este poziționat la sfârșitul fișierului. Datele care se scriu vor fi introduse la final, după datele existente.



Exemplul 1: Program Python pentru a ilustra modul Append vs write.

Python3








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

>

matrice java

>

Ieșire:

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

Exemplul 2: Adăugați date dintr-o linie nouă

În exemplul de mai sus de manipularea fișierelor , se poate observa că datele nu sunt atașate din noua linie. Acest lucru se poate face prin scrierea caracterului newline „ ” în fișier.

Python3


rekha indian



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

>

modele de design java

>

Ieșire:

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

Notă: „ ” este tratat ca un caracter special de doi octeți.

Exemplul 3: Folosind instrucțiunea With în Python

cu declarație este folosit în gestionarea excepțiilor pentru a face codul mai curat și mult mai lizibil. Simplifică gestionarea resurselor comune, cum ar fi fluxurile de fișiere. Spre deosebire de implementările de mai sus, nu este nevoie să apelați file.close() când utilizați instrucțiunea with. Declarația with în sine asigură achiziția și eliberarea adecvată a resurselor.

Python3




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

>

mergesort java

>

Ieșire:

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

Notă: Pentru a afla mai multe despre cu declarație click aici .

Folosind modulul Shuil:

Această abordare folosește metoda shutil.copyfileobj() pentru a atașa conținutul unui alt fișier (source_file) la „file.txt”. Acest lucru poate fi util dacă doriți să adăugați conținutul unui fișier la altul fără a fi nevoie să citiți mai întâi conținutul în memorie.

Abordare:
Codul folosește funcția shutil.copyfileobj() pentru a copia conținutul obiectului source_file într-un fișier nou numit file.txt. Instrucțiunea with este folosită pentru a deschide și închide automat fișierul, folosind obiectul fișier f.

Complexitatea timpului:
Complexitatea de timp a funcției shutil.copyfileobj() este proporțională cu dimensiunea fișierului copiat, deoarece trebuie să citească și să scrie fiecare octet al fișierului. Prin urmare, complexitatea de timp a codului este O(n), unde n este dimensiunea fișierului_sursă.

Complexitatea spațiului:
Complexitatea spațială a codului este O(1), deoarece nu alocă nicio memorie suplimentară dincolo de ceea ce este necesar pentru obiectele fișier source_file și f. Funcția shutil.copyfileobj() copiază conținutul fișierului în bucăți, deci nu este nevoie să încarce întregul fișier în memorie deodată.

În general, codul are o complexitate liniară în timp și o complexitate spațială constantă, unde complexitatea timpului este proporțională cu dimensiunea fișierului copiat.

liste css

Python3




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

>

>