Seite 1 von 1

Textdatei 2 mal iterieren

Verfasst: Samstag 30. April 2011, 12:48
von script_composer
Hallo an alle,

sorry die Frage mag etwas blöd sein:

iteriere mit einer for schleife durch eine geöffnete Textdatei durch. Die schleife bricht irgendwann durch break ab. Wenn ich nun ein zweites Mal durch die Datei iterieren will, startet die Iteration an der Stelle wo die vorherige Schleife durch break beendet wurde. Wie kann ich das umgehen? Ich denke close() ginge, aber würde unnötigen Festplattenzugriff bedeuten oder?

Code: Alles auswählen

accessConf = open('sites/access.conf', 'r')
    nec_group = ''
    for lines in accessConf:
        line = lines.strip().split()
        if site == line[0]:
            nec_group = line[1]
            break

Re: Textdatei 2 mal iterieren

Verfasst: Samstag 30. April 2011, 12:55
von derdon
Dateiobjekte haben eine `seek`-Methode. Du willst vermutlich 0 als Argument übergeben.

Re: Textdatei 2 mal iterieren

Verfasst: Samstag 30. April 2011, 12:59
von script_composer
Joa genau das suchte ich. Werde das nächste Mal direkt die offizielle Anleitung von python.org anstatt dieser komischen von galileocomputing nehmen. Die scheint mir irgendwie unvollständig!


Herzlichen Dank für die super Hilfe :)

Re: Textdatei 2 mal iterieren

Verfasst: Samstag 30. April 2011, 14:11
von derdon
Bitte, gern geschehen :)

Und nimm die Finger weg vom Galileobuch, das ist miste. Siehe auch: http://bj.spline.de/python_openbook.html

Re: Textdatei 2 mal iterieren

Verfasst: Samstag 30. April 2011, 14:45
von cofi
script_composer hat geschrieben:Ich denke close() ginge, aber würde unnötigen Festplattenzugriff bedeuten oder?
Wenn zwischen den Zugriff einigermassen viel Zeit vergeht waere das aber trotzdem besser. Viele nicht-moderne OS haben da relativ wenige Filehandles fuer einen Prozess.
Dann kommt noch dazu, dass die "Optimierung" evtl schlecht lesbar, oder zumindest schlechter lesbaren Code erzeugt als wenn man die Datei nur an den richtigen Stellen oeffnet und dafuer bald wieder schliesst (siehe auch das `with`-Statement).

Und zu guter letzt: Moderne Betriebssysteme machen unglaublich viel um die Ressourcen zu schonen, Mutmassungen helfen da wenig, sondern nur Tests.