Heim > Backend-Entwicklung > Python-Tutorial > Wie kann ich mit Python 3 effizient Text in einer Datei suchen und ersetzen?

Wie kann ich mit Python 3 effizient Text in einer Datei suchen und ersetzen?

Barbara Streisand
Freigeben: 2024-12-28 18:44:18
Original
1006 Leute haben es durchsucht

How Can I Efficiently Search and Replace Text in a File Using Python 3?

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...')
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage