Datei bearbeiten

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
da.dom
User
Beiträge: 114
Registriert: Dienstag 10. Juni 2008, 14:42

HuHu...

ich möchte in einer Datei eine bestimmte Zeile (zur Zeit: die erste) durch eine andere ersetzen.

Gibt es in Python eine Ersetzen-Funtkion für Dateien? Oder müsste ich die komplette Datei einlesen, und neu schreiben?

Grüße
D
BlackJack

In der Regel musst Du die Datei neu schreiben. Das ist nicht Python-spezifisch, sondern generell so, weil Dateien halt ein Haufen Bytes sind, die nacheinander in Blöcken auf der Festplatte liegen. Wenn die neue Zeile nicht genau so viele Bytes hat, wie die alte, muss man alle nachfolgenden Bytes verschieben und das geht eben nur, in dem man alles liest und neu schreibt.

Am sichersten ist es, die neuen Daten in eine temporäre Datei im gleichen Verzeichnis zu schreiben und die am Ende umzubenennen. So ändern sich die Daten "auf einen Schlag", es besteht also keine Gefahr, das ein anderes Programm die Datei liest, während sie gerade neu geschrieben wird, und damit nur einen Teil der Daten enthält. Ausserdem hat man immer noch die Originaldatei unter dem Originaldateinamen, falls das Programm aus irgend einem Grund mittendrin abbricht.
Antworten