Seite 1 von 1

Problem beim Einlesen von Daten

Verfasst: Montag 25. Mai 2009, 23:17
von Shaldy

Code: Alles auswählen

datei = open("test.txt", "r")
zeilen = datei.readlines()
print zeilen
zeilen = datei.readlines()
print zeilen
Als erstes wird eine Liste mit den erwarteten Elementen (die einzelnen Zeilen der Textdatei als Strings gespreichert) ausgegeben.
Beim zweiten Mal wird eine leere Liste ausgegeben.

Warum?

Verfasst: Montag 25. Mai 2009, 23:42
von EyDu
Die Frage lässt sich mit einer Gegenfrage beantworten: in Zeile 2 werden alle Zeilen der Datei gelesen, wie viele verbleiben in Zeile 4 noch zum lesen? ;-)

Verfasst: Montag 25. Mai 2009, 23:59
von Shaldy
Ich dachte die Daten werden einfach nur kopiert, warum sollte sich das nicht wiederholen lassen.
Wie kann ich die Schreib/Leseposition manuell zurückstellen?

Verfasst: Dienstag 26. Mai 2009, 00:17
von EyDu
Eine Kopie der Daten wäre für die meisten ein reativ unerwartetes Verhalten, da würde man eher ein Attribut "lines" erwarten und weniger eine Funktion.

Zurückstellen kannst du die Position mit der seek-Methode. Abschnitt 6.9 - File Objects.

Verfasst: Dienstag 26. Mai 2009, 06:24
von BlackJack
Zwei Anmerkungen: Man kann nicht bei allen Dateien "seek"en und warum sollte man den Lesevorgang wiederholen wollen, wenn man die Daten schon einmal ins Programm eingelesen hat?