J'ai besoin de lire un gros fichier, ligne par ligne. Disons que le fichier a plus de 5 Go et que je dois lire chaque ligne, mais je ne veux évidemment pas l'utiliser readlines()car cela créera une très grande liste en mémoire.
Comment le code ci-dessous fonctionnera-t-il dans ce cas? Se xreadlineslit-il un par un en mémoire? L'expression du générateur est-elle nécessaire?
f = (line for line in open("log.txt").xreadlines()) # how much is loaded in memory?
f.next()
De plus, que puis-je faire pour lire ceci dans l'ordre inverse, tout comme la tailcommande Linux ?
J'ai trouvé:
http://code.google.com/p/pytailer/
et
" tête, queue et arrière en python lus par les lignes d'un fichier texte "
Les deux ont très bien fonctionné!