AW: [Python-de] Regex: leere Zeile entfernen

Josef Cihal josef.cihal at irm.at
Thu Jan 3 16:59:59 EST 2002


Danke Stefan,

schönen Abend noch,
josef

-----Ursprüngliche Nachricht-----
Von: python-de-admin at starship.python.net
[mailto:python-de-admin at starship.python.net]Im Auftrag von Stefan
Schwarzer
Gesendet: Donnerstag, 3. Januar 2002 16:43
An: python-de at starship.python.net
Betreff: Re: [Python-de] Regex: leere Zeile entfernen


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
_______________________________________________
Python-de maillist  -  Python-de at starship.python.net
http://starship.python.net/mailman/listinfo/python-de




More information about the Python-de mailing list