Zeilenweise aus Datei loeschen
Hallo!
2 gängige methoden:
a)
- datei zum lesen öffnen
- alle zeilen in eine liste einlesen
- datei schließen
- datei zum schreiben öffnen
- alle gewünschten zeilen aus der liste in die datei schreiben
- datei schließen
b)
- datei zum lesen öffnen
- tmpdatei zum schreiben öffnen
- zeile für zeile aus datei lesen und
und gleich wieder in tmpdatei speichern, wenn die zeile gewünscht ist
- beiden dateien schließen
- dateien umbenennen
joe
2 gängige methoden:
a)
- datei zum lesen öffnen
- alle zeilen in eine liste einlesen
- datei schließen
- datei zum schreiben öffnen
- alle gewünschten zeilen aus der liste in die datei schreiben
- datei schließen
b)
- datei zum lesen öffnen
- tmpdatei zum schreiben öffnen
- zeile für zeile aus datei lesen und
und gleich wieder in tmpdatei speichern, wenn die zeile gewünscht ist
- beiden dateien schließen
- dateien umbenennen
joe
Danke dir hab mich fuer ersteres entschieden *g* Hat aber prima funktioniert! Schade dass es keine vorgefertigte Methode gab so wird mein Projekt noch groesser! Aber macht ja nix!!
Kleine Optimierung von a) wäre für den Fall, das Filtern der Zeilen schon beim Einlesen zu erledigen, so dass im Speicher dann nur noch die erwünschten Zeilen stehen.
Kommt darauf an, wie gross die Datein sind, die bearbeitet werden sollen!Joghurt hat geschrieben:Methode a) ist im allgemeinen nicht zu empfehlen, da sie sehr speicherintensiv ist.
Wenn es sich nur um Dateien mit 20 Zeilen handelt - warum nicht?
Ausserdem wird dabei keine neue Datei angelegt, was z.B. zu Problem mit Rechten führen könnte?!?
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Als Zwischendatei könnte man auch os.tmpfile() versuchen. Hat zwar einige Nachteile, aber dafür sollte das mit den Zugriffsrechten dann klappen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice