J'ai besoin de lire un gros fichier, ligne par ligne. Disons que ce fichier a plus de 5 Go et que j'ai besoin de lire chaque ligne, mais je ne veux évidemment pas utiliser la fonction readlines()
car cela va créer une très grande liste dans la mémoire.
Comment le code ci-dessous fonctionnera-t-il dans ce cas ? Est-ce que xreadlines
lui-même en lisant un par un dans la 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, comme le Linux tail
commande ?
J'ai trouvé :
http://code.google.com/p/pytailer/
y
" python head, tail et backward lire par lignes d'un fichier texte "
Les deux ont très bien fonctionné !
0 votes
Et que puis-je faire pour lire cela depuis la queue ? ligne par ligne, en commençant par la dernière ligne.
0 votes
Ceci devrait être une question séparée
1 votes
Duplicate stackoverflow.com/questions/5896079/