Heim >Backend-Entwicklung >Python-Tutorial >Wie kann Pythons Suchen-und-Ersetzen mit variablen Textlängen bei der Dateibearbeitung umgehen?

Wie kann Pythons Suchen-und-Ersetzen mit variablen Textlängen bei der Dateibearbeitung umgehen?

Linda Hamilton
Linda HamiltonOriginal
2024-12-15 20:33:10950Durchsuche

How Can Python's Search-and-Replace Handle Variable Text Lengths in File Editing?

Python-Dateisuche und -ersetzung mit unterschiedlichen Textlängen

Beim Versuch, mit Python 3 eine Suche und Ersetzung innerhalb einer Datei durchzuführen, haben einige Benutzer Es treten Probleme auf, wenn der Ersatztext kürzer oder länger als der Originaltext ist. Dies kann dazu führen, dass der Datei unbeabsichtigte Zeichen hinzugefügt werden.

Beachten Sie den bereitgestellten Code:

# Get user input for search and replacement text
textToSearch, textToReplace, fileToSearch = input("Text to search for: "), input("Text to replace it with: "), input("File to perform Search-Replace on: ")

# Open the file and loop through each line
with open(fileToSearch, 'r+') as tempFile:
    for line in fileinput.input(fileToSearch):
        # Perform replacement only when a match is found
        if textToSearch in line:
            line = line.replace(textToSearch, textToReplace)
        # Write the modified line back to the file
        tempFile.write(line)

Dieser Ansatz schlägt jedoch fehl, wenn längerer Text durch kürzeren Text als die verbleibenden Zeichen ersetzt wird vom Originaltext bleiben zurück.

Lösung:

Um dieses Problem zu beheben, ist es Es wird empfohlen, die gesamte Datei in den Speicher einzulesen, die Such- und Ersetzungsvorgänge durchzuführen und dann den geänderten Inhalt in einem separaten Schritt zurück in die Datei zu schreiben:

# Read the file into memory
with open('file.txt', 'r') as file:
    filedata = file.read()

# Perform the replacement
filedata = filedata.replace('abcd', 'ram')

# Write the modified content back to the file
with open('file.txt', 'w') as file:
    file.write(filedata)

Diese Methode stellt sicher, dass die Datei geändert wird platzieren, ohne unerwünschte Zeichen einzuführen.

Das obige ist der detaillierte Inhalt vonWie kann Pythons Suchen-und-Ersetzen mit variablen Textlängen bei der Dateibearbeitung umgehen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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