Ich muss eine große Datei Zeile für Zeile lesen. Nehmen wir an, die Datei hat mehr als 5 GB und ich muss jede Zeile lesen, aber ich möchte sie natürlich nicht verwenden, readlines()da dadurch eine sehr große Liste im Speicher erstellt wird.
Wie funktioniert der folgende Code für diesen Fall? Liest xreadlinessich eins nach dem anderen ins Gedächtnis? Wird der Generatorausdruck benötigt?
f = (line for line in open("log.txt").xreadlines()) # how much is loaded in memory?
f.next()
Und was kann ich tun, um dies in umgekehrter Reihenfolge zu lesen, genau wie der Linux- tailBefehl?
Ich fand:
http://code.google.com/p/pytailer/
und
" Python Kopf, Schwanz und rückwärts gelesen durch Zeilen einer Textdatei "
Beides hat sehr gut funktioniert!