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
Datei bearbeiten
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.
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.