Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich Zeilen in einer Datei effizient direkt ändern, ohne eine temporäre Datei zu erstellen?

Wie kann ich Zeilen in einer Datei effizient direkt ändern, ohne eine temporäre Datei zu erstellen?

DDD
DDDOriginal
2024-11-29 10:35:101018Durchsuche

How Can I Efficiently Modify Lines in a File In-Place Without Creating a Temporary File?

Zeilen in einer Datei direkt ändern

Ist es möglich, eine Datei Zeile für Zeile effizient zu analysieren und bestimmte Zeilen zu ändern, ohne eine Datei zu erstellen? Kopie oder vorübergehend Datei?

Antwort:

Ja, es ist möglich, die In-Place-Bearbeitung mithilfe einer Sicherungsdatei zu simulieren. Das Fileinput-Modul stellt hierfür die notwendige Funktionalität bereit.

Beispiel:

Stellen Sie sich ein Skript vor, das Zeilen, die eine bestimmte Bedingung nicht erfüllen, aus Dateien entfernt, die als Befehlszeilenargumente bereitgestellt werden oder stdin:

import fileinput

for line in fileinput.input(inplace=True, backup='.bak'):
    if some_condition(line):
        print(line)  # The modified line is output to the current file

Verwendung:

An Um Zeilen, die some_condition nicht erfüllen, aus first_file.txt und second_file.txt zu entfernen, führen Sie den folgenden Befehl aus:

python grep_some_condition.py first_file.txt second_file.txt

Nach Abschluss enthalten first_file.txt und second_file.txt nur Zeilen, die das Prädikat some_condition() erfüllen.

Dieser Ansatz gewährleistet eine effiziente In-Place-Änderung, indem während des Bearbeitungsprozesses eine Sicherungsdatei .bak erstellt wird und die Originaldatei erhalten bleibt Es treten Fehler auf.

Das obige ist der detaillierte Inhalt vonWie kann ich Zeilen in einer Datei effizient direkt ändern, ohne eine temporäre Datei zu erstellen?. 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