[Python-de] Regex: leere Zeile entfernen
Stefan Schwarzer
s.schwarzer at ndh.net
Thu Jan 3 16:42:39 EST 2002
Hallo Josef,
folgender Code ist komplett ungetestet, reicht aber evtl. als Ansatz.
Josef Cihal wrote:
> IM14
> IM11
> IM14
>
> ich brauche mit regular expression alle Zeilen die mit IM11 beginnen ider
> Datei entfernen...
> Wie kann ich das machen.
>
> FOLGENDES genuegt nicht ,weil cih moechte die leere Zeile entfernen...
>
> in vi:
> :1,$s/IM[^4]*//
1. in Vim (und vermutlich vi) geht das mit
:%g/^IM14\d/d
usw.
(in Vim: :help global)
2. mit String-Methoden:
f = open(datei, 'r')
lines = f.readlines()
f.close()
lines = [line for line in lines if not line.startswith('IM11')]
lines = [line for line in lines if not line.startswith('IM14')]
f = open(datei, 'w')
f.writelines(line)
f.close()
3. mit Regex:
import re
pattern = re.compile(r'^IM1\d')
f = open(datei, 'r')
lines = f.readlines()
f.close()
lines = [line for line in lines if pattern.search(line) is not None]
f = open(datei, 'w')
f.writelines(line)
f.close()
Zur anderen Diskussion/Niveau deiner Fragen:
Bei manchen Fragen denke ich mir auch, "das ist doch gar nicht so schwer".
Andererseits kann ich nicht beurteilen, ob das daran liegt, dass du zu
faul bist, die Doku zu lesen oder ob du die entsprechenden Stellen nicht
findest/die gefundene Information nicht für deinen jeweiligen Anwendungs-
fall umsetzen kannst. Ich nehme im Zweifelsfall das letztere an und
antworte, wenn es niemand anders tut.
Ein anderer Aspekt fällt mir dazu aber gerade noch ein: Wenn du (oder
jemand anders) _relativ häufig_ triviale Fragen stellt, kann das auch
gut ein Hinweis darauf sein, dass du einfach mal engagierter mit dem
Gelesenen experimentieren musst. Es mag keine bewusste Nachlässigkeit
von dir sein, aber ich denke, du machst es dir - auch im eigenen
Interesse - vielleicht zu einfach.
Ein Vergleich: Es mag schwierig zu sein, laufen zu lernen. Aber wenn du
dich trotz manchem Auf-die-Nase-fallen bemühst, wird dir das höher
angerechnet, als wenn du von anderen erwartest, dass sie dich tragen. ;-)
Viele Grüße
Stefan
More information about the Python-de
mailing list