[Python-de] Zeile in Datei aufsuchen

"Martin v. Löwis" martin at v.loewis.de
Son Aug 8 12:43:44 CEST 2004


Albert Hermeling wrote:
> Gib es eine Funktion die eine bestimmt Zeile in einer Datei aufsucht?

Nein; dazu musst Du alle Zeilen lesen und die nicht benötigten
auslassen. Historisch die einfachste Lösung:

for zeile in datei.readlines()[10:]:
   verarbeite(zeile)

Das lässt die ersten 10 Zeilen weg. Wenn Du auch wieder die
Nummern brauchst:

for nummer,zeile in enumerate(datei.readlines()[10:]):
     nummer += 10
     verarbeite(zeile)

Hier musst Du leider die Zahl der zu überspringenden Zeilen zweimal
angeben. Das kann man mit itertools.dropwhile beheben

from itertools import dropwhie
for nummer,zeile in dropwhile(lambda x:x[0]<10, enumerate(datei)):
     verarbeite(zeile)

Am einfachsten ist es aber vielleicht, die ersten Zeilen explizit
zu überlesen:

for nummer,zeile in enumerate(datei):
     if nummer < 10: continue
     verarbeite(zeile)

There should be one-- and preferably only one --obvious way to do it.

Ciao,
Martin