Problem beim Einlesen von Daten

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Shaldy
User
Beiträge: 123
Registriert: Sonntag 2. März 2008, 22:49

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?
Dies ist keine Signatur!
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

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? ;-)
Das Leben ist wie ein Tennisball.
Shaldy
User
Beiträge: 123
Registriert: Sonntag 2. März 2008, 22:49

Ich dachte die Daten werden einfach nur kopiert, warum sollte sich das nicht wiederholen lassen.
Wie kann ich die Schreib/Leseposition manuell zurückstellen?
Dies ist keine Signatur!
EyDu
User
Beiträge: 4881
Registriert: Donnerstag 20. Juli 2006, 23:06
Wohnort: Berlin

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.
Das Leben ist wie ein Tennisball.
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?
Antworten