Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich mit Python 3 effizient Text in einer Datei suchen und ersetzen?
Text in einer Datei mit Python 3 suchen und ersetzen
In Python 3 können Sie mithilfe verschiedener Methoden nach Text in einer Datei suchen und diesen ersetzen Methoden. Ein gängiger Ansatz wird im bereitgestellten Code veranschaulicht.
Codeanalyse
Ihr bereitgestellter Code liest den zu suchenden und zu ersetzenden Text sowie den Dateipfad vom Benutzer. Anschließend öffnet es die Datei zum Lesen und Schreiben, sucht mithilfe der Dateieingabe nach Vorkommen des Suchtexts, ersetzt ihn durch den Ersatztext und schreibt den geänderten Inhalt in die Datei.
Problem beim Ersetzen von „abcd“. ' durch 'ram'
Das gemeldete Problem mit Ersetzungsergebnissen tritt auf, weil die Zeichenfolge „abcd“ länger als „ram“ ist. Wenn „abcd“ durch „ram“ ersetzt wird, werden die zusätzlichen Zeichen am Ende des ersetzten Texts nicht entfernt, was zu den von Ihnen beobachteten „Junk-Zeichen“ führt.
Lösung
Um dieses Problem zu beheben, sollten Sie den möglichen Längenunterschied zwischen den Such- und Ersetzungszeichenfolgen berücksichtigen. Hier ist eine aktualisierte Version des Codes, die korrekt funktionieren sollte:
import os import fileinput print("Text to search for:") textToSearch = input("> ") print("Text to replace it with:") textToReplace = input("> ") print("File to perform Search-Replace on:") fileToSearch = input("> ") tempFile = open(fileToSearch, 'r+') for line in fileinput.input(fileToSearch): if textToSearch in line: tempFile.write(line.replace(textToSearch, textToReplace)) else: tempFile.write(line) tempFile.close() input('Press Enter to exit...')
Aktualisierte Implementierung
Anstatt alle Vorkommen von textToSearch durch textToReplace zu ersetzen, verwendet der aktualisierte Code line .replace() innerhalb der Schleife, um sicherzustellen, dass nur das spezifische gefundene Vorkommen ersetzt wird. Durch diese Änderung werden die verbleibenden Junk-Zeichen entfernt.
Speichereffiziente Lösung
Der Code geht davon aus, dass die Datei vollständig in den Speicher passt. Wenn die Datei zu groß ist, sollten Sie in Erwägung ziehen, die Datei in Blöcken zu lesen und zu schreiben, um Speicherprobleme zu vermeiden.
Das obige ist der detaillierte Inhalt vonWie kann ich mit Python 3 effizient Text in einer Datei suchen und ersetzen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!