Um bestimmte Zeilen in einer Textdatei in Python zu ersetzen, sollten Sie die Verwendung des Fileinput-Moduls in Betracht ziehen. Diese Methode vermeidet das Laden der gesamten Datei in den Speicher, was sie für große Dateien effizient macht.
import fileinput with fileinput.input("test.txt", inplace=True) as f: for line in f: if "foo" in line: print(line.replace("foo", "bar"), end='')
Mit diesem Code wird die Originaldatei in eine Sicherung umbenannt und der Standard Die Ausgabe wird umgeleitet, um innerhalb der Schleife in die Originaldatei zu schreiben. Alle Druckanweisungen innerhalb der Schleife ändern den Inhalt der Datei direkt.
Berücksichtigen Sie zur besseren Lesbarkeit diese expliziten Optionen:
Option 1 (Für kleine Dateien ):
with open("test.txt", "r") as f: lines = f.readlines() with open("test.txt", "w") as f: for line in lines: if "foo" in line: f.write(line.replace("foo", "bar")) else: f.write(line)
Option 2 (Für Groß Dateien):
import tempfile with open("test.txt") as original, tempfile.NamedTemporaryFile(delete=False) as temp: for line in original: if "foo" in line: temp.write(line.replace("foo", "bar").encode()) else: temp.write(line.encode()) temp.flush() os.replace(temp.name, "test.txt")
Das obige ist der detaillierte Inhalt vonWie kann ich Zeilen in einer Textdatei mit Python effizient ersetzen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!