Inplace-Voranstellung an den Anfang einer Datei
Beim Versuch, eine Zeile mithilfe des Anhängemodus an den Anfang einer Datei anzuhängen (' a') kann es bei Benutzern zu unerwünschtem Schreiben am Ende der Datei kommen, da der Dateizeiger automatisch zum Ende vorrückt.
Um diese Einschränkung zu überwinden und tatsächlich eine Zeile am Anfang der Datei voranzustellen, können verschiedene Methoden eingesetzt werden :
Methode 1: Datei lesen und neu schreiben
Wenn das Laden der gesamten Datei in den Speicher möglich ist, kann die folgende Funktion verwendet werden:
<code class="python">def line_prepender(filename, line): with open(filename, 'r+') as f: content = f.read() f.seek(0, 0) f.write(line.rstrip('\r\n') + '\n' + content)</code>
Dieser Ansatz lädt den Inhalt der Datei in den variablen Inhalt, sodass die Zeile vorangestellt und der geänderte Inhalt an den Anfang der Datei neu geschrieben werden kann.
Methode 2: Verwenden der Dateieingabe Modul
Ein alternativer Ansatz besteht in der Verwendung des Dateieingabemoduls:
<code class="python">def line_pre_adder(filename, line_to_prepend): f = fileinput.input(filename, inplace=1) for xline in f: if f.isfirstline(): print line_to_prepend.rstrip('\r\n') + '\n' + xline, else: print xline,</code>
Diese Methode iteriert über die Zeilen der Datei und stellt beim Auftreffen auf die erste Zeile die angegebene Zeile davor voran Drucken beider Zeilen.
Der genaue Mechanismus dieser Methode ist nicht ganz klar, aber sie ermöglicht die direkte Bearbeitung der Datei, ohne dass der gesamte Inhalt in den Speicher geladen werden muss, wodurch sie möglicherweise für größere Dateien geeignet ist.
Das obige ist der detaillierte Inhalt vonWie stelle ich in Python eine Zeile an den Anfang einer Datei voran?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!