Zeilenweise aus Datei loeschen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
FIAN03
User
Beiträge: 1
Registriert: Freitag 22. April 2005, 10:43

Moin Jungs. Ich muss ein paar Zeilen Code aus einer Txt Datei loeschen, jedoch weis ich den Befehl dazu nicht! Und wie ich Python kenne gibt es da bestimmt eine Methode!
joe

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
Gast

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!!
Joghurt
User
Beiträge: 877
Registriert: Dienstag 15. Februar 2005, 15:07

Methode a) ist im allgemeinen nicht zu empfehlen, da sie sehr speicherintensiv ist.
BlackJack

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.
maxxle
User
Beiträge: 12
Registriert: Dienstag 12. Juli 2005, 13:54

Joghurt hat geschrieben:Methode a) ist im allgemeinen nicht zu empfehlen, da sie sehr speicherintensiv ist.
Kommt darauf an, wie gross die Datein sind, die bearbeitet werden sollen!
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?!?
Leonidas
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
Antworten