logo

Python an eine Datei anhängen

Beim Lesen oder Schreiben in eine Datei bestimmt der Zugriffsmodus die Art der Vorgänge, die in der geöffneten Datei möglich sind. Es bezieht sich darauf, wie die Datei nach dem Öffnen verwendet wird. Diese Modi definieren auch den Speicherort des Dateihandles in der Datei. Die Definition dieser Zugriffsmodi lautet wie folgt:

    Nur anhängen („a“): Öffnen Sie die Datei zum Schreiben. Anhängen und Lesen („a+“): Öffnen Sie die Datei zum Lesen und Schreiben.

Wenn die Datei im Anhängemodus in Python geöffnet wird, wird das Handle am Ende der Datei positioniert. Die zu schreibenden Daten werden am Ende nach den vorhandenen Daten eingefügt.



Beispiel 1: Python-Programm zur Veranschaulichung des Append- und Schreibmodus.

Python3








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

>

>

Ausgabe:

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

Beispiel 2: Daten aus einer neuen Zeile anhängen

Im obigen Beispiel von Dateiverwaltung Es ist ersichtlich, dass die Daten nicht aus der neuen Zeile angehängt werden. Dies kann durch Schreiben des Newline-Zeichens „ “ in die Datei erfolgen.

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

>

>

Ausgabe:

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

Notiz: „ “ wird als Sonderzeichen von zwei Bytes behandelt.

Beispiel 3: Verwenden der With-Anweisung in Python

mit Aussage wird bei der Ausnahmebehandlung verwendet, um den Code sauberer und besser lesbar zu machen. Es vereinfacht die Verwaltung gemeinsamer Ressourcen wie Dateiströme. Im Gegensatz zu den oben genannten Implementierungen ist es nicht erforderlich, file.close() aufzurufen, wenn die with-Anweisung verwendet wird. Die with-Anweisung selbst stellt die ordnungsgemäße Erfassung und Freigabe von Ressourcen sicher.

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

>

>

Ausgabe:

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

Notiz: Erfahren Sie mehr über with-Anweisung klicken Sie hier .

Verwendung des Shutil-Moduls:

Dieser Ansatz verwendet die Methode „shutil.copyfileobj()“, um den Inhalt einer anderen Datei (source_file) an „file.txt“ anzuhängen. Dies kann nützlich sein, wenn Sie den Inhalt einer Datei an eine andere anhängen möchten, ohne den Inhalt zuerst in den Speicher einlesen zu müssen.

Ansatz:
Der Code verwendet die Funktion „shutil.copyfileobj()“, um den Inhalt des Objekts „source_file“ in eine neue Datei namens „file.txt“ zu kopieren. Die with-Anweisung wird verwendet, um die Datei mithilfe des Dateiobjekts f zu öffnen und automatisch zu schließen.

Zeitkomplexität:
Die zeitliche Komplexität der Funktion „shutil.copyfileobj()“ ist proportional zur Größe der zu kopierenden Datei, da jedes Byte der Datei gelesen und geschrieben werden muss. Daher beträgt die zeitliche Komplexität des Codes O(n), wobei n die Größe der Quelldatei ist.

Raumkomplexität:
Die Speicherplatzkomplexität des Codes beträgt O(1), da er keinen zusätzlichen Speicher zuweist, der über den für die Dateiobjekte source_file und f erforderlichen Speicher hinausgeht. Die Funktion „shutil.copyfileobj()“ kopiert den Dateiinhalt in Blöcken, sodass nicht die gesamte Datei auf einmal in den Speicher geladen werden muss.

Insgesamt weist der Code eine lineare zeitliche Komplexität und eine konstante räumliche Komplexität auf, wobei die zeitliche Komplexität proportional zur Größe der zu kopierenden Datei ist.

Python3




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

Schreiben Sie JSON in die Python-Datei
>

>