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
Freigeben: 2024-11-29 10:35:10
Original
1086 Leute haben es durchsucht

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

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 dem Login kopieren

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!

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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage