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.
Zeile aus Datei löschen
Was sollte da anders sein als beim letzten Mal, als wir das mit dir diskutiert haben?
viewtopic.php?t=43347
viewtopic.php?t=43347
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.
Datei Zeile für Zeile lesen, und nur die Zeilen in eine neue Datei schreiben, die den regulären Ausdruck nicht erfüllen.
- 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 "
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 "
sourceserver.info - sourceserver.info/wiki/ - ausgestorbener Support für HL2-Server