trotz intensiver Recherche in diesem Forum zum Thema Einlesen aus txt-files schaffe ich es leider nicht mein Problem zu lösen.
Ich habe eine txt-Datei die aus zwei Zahlenspalten besteht, wovon genau eine eingelesen wird. Dabei möchte ich jedoch nicht die ganze Datei in den Speicher laden, sondern immer nur 5 Zeilen lesen, mit den Werten dieser 5 Zeilen weiterarbeiten und schließlich die nächsten 5 Zeilen lesen. Und das Ganze über ca. 20.000 Zeilen.
Meine derzeitige Funktion liest die ersten 5 Zeilen ( = Zeile 1 bis 5) richtig ein. Anschließend werden aber nicht die nächsten 5 Zeilen eingelesen (d.h. Zeile 5-10) sondern Zeile (2-6) beim nächsten Durchlauf der for-Schleife dann (3-7), usw... Da habe ich dann alles doppelt und dreifach
Mein Code:
Code: Alles auswählen
def readfile(filename):
file = open(filename, "r")
while True:
for i in range(5):
line = file.readline()
if not line:
break
s = str.split(line)
print y # zur Kontrolle
y[i] = float(s[1])
## ...mach was mit den 5 Werten...##
file.close()
return
Offensichtlich verstehe ich das Iterationsverhalten von file bzw. line nicht wirklich. Kann mir bitte jemand einen Rat geben? Und geht das nur mit seek() und tell() ? Eigentlich würde ich gerne darauf verzichten.
Gruß,
Mauli