Zeile aus Datei löschen

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
egon11
User
Beiträge: 354
Registriert: Mittwoch 14. Dezember 2016, 20:59

Kann ich eine Zeile aus einer Datei löschen, die ich mit den regulären Ausdruck gefunden hab?
Also ich suche mit "re.search" ein Wort und möchte die Zeile löschen.
Mit welchen Mitteln kann ich das unkompliziert realisieren?
Hab schon gesucht, aber dazu nichts weiter treffendes gefunden.
__deets__
User
Beiträge: 14528
Registriert: Mittwoch 14. Oktober 2015, 14:29

Was sollte da anders sein als beim letzten Mal, als wir das mit dir diskutiert haben?

viewtopic.php?t=43347
Sirius3
User
Beiträge: 17741
Registriert: Sonntag 21. Oktober 2012, 17:20

Im Grunde geht das ähnlich, wie in Deinem anderen Thread Zeile in Textdatei löschen.

Datei Zeile für Zeile lesen, und nur die Zeilen in eine neue Datei schreiben, die den regulären Ausdruck nicht erfüllen.
egon11
User
Beiträge: 354
Registriert: Mittwoch 14. Dezember 2016, 20:59

Danke
Benutzeravatar
DeaD_EyE
User
Beiträge: 1017
Registriert: Sonntag 19. September 2010, 13:45
Wohnort: Hagen
Kontaktdaten:

1) regex zusammenstricken.
2) Datei komplett in den Speicher einlesen (kein Problem, wir haben alle ca 4GiB RAM)
3) Dann mit re.sub den String bearbeiten.
4) Datei schreiben.

Alternativ:
1) alte Datei im Lesemodus öffnen, neue Datei im Schreibmodus öffnen
2) Über die Zeilen der alten Datei iterieren und prüfen ob die zu löschende Zeile gefunden wurde.
3.1) Wenn die Zeile nicht gefunden worden ist, stupide in die neue Datei schreiben
3.2) Wenn die Zeile gefunden worden ist, continue, nicht schreiben.

Eigentlich solltest du in der Lage sein da Problemchen auch so ggf. ohne Regex zu lösen.
Man sollte auch wissen, dass man nicht alles mit Regex parsen kann.
Wieso das so ist, kann man auch nachlesen. Regex kann z.B. HTML nicht parsen.

Ist es nicht immer klug Regex als erste Lösung zu bevorzugen.
Da gibt es auch einen Witz zu:

"I guess I'll use regex to solve this task"
"Then you have two problems :-D"
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server
Antworten