Thomas Barends schrieb:
> Ist das hier was?
>
> myfile=open('myfilename.txt','r')
> mylines=myfile.readlines()
> myfile.close()
>
> for line in mylines:
> # DO THING WITH LINE
Das ist zwar richtig, aber je nach Anwendungsfall leider nur so...
"halbschön", da die Datei auf diese Weise komplett in den Speicher
geladen wird, was bei sehr großen Dateien etwas... problematisch werden
kann. Zudem entfernt die Methode "readlines()" leider nicht den
Zeilenumbruch am Ende der Zeilen.
Allerdings kann unser TO auf seinen Puffer die Methode "splitlines()"
anwenden, die die Zeilenumbrüche entfernt, sich aber nicht an
Zeilenumbrüchen orientiert. Ein "read(512).splitlines()" enthält im
letzten Feld also mit einer sehr hohen Wahrscheinlichkeit eine
unvollständige Zeile. Deswegen wäre so etwas wie
1 | with open(filename, 'r') as ifh:
|
2 | bufferlist = ifh.read(BUFSIZE).splitlines()
|
3 | bufferlist[-1] += ifh.readline().strip()
|
vielleicht ein hübscherer Weg, die letzte Zeile vollständig zu lesen
(readline()) und auch dort den Zeilenumbruch zu entfernen (strip()).