Eu preciso ler um arquivo grande, linha por linha. Digamos que o arquivo tenha mais de 5 GB e preciso ler cada linha, mas obviamente não quero usá- readlines()
lo porque ele criará uma lista muito grande na memória.
Como o código abaixo funcionará para este caso? Ele xreadlines
está lendo um por um na memória? A expressão do gerador é necessária?
f = (line for line in open("log.txt").xreadlines()) # how much is loaded in memory?
f.next()
Além disso, o que posso fazer para ler isso em ordem inversa, assim como o tail
comando Linux ?
Eu encontrei:
http://code.google.com/p/pytailer/
e
" cabeça de python, cauda e verso lidas por linhas de um arquivo de texto "
Ambos funcionaram muito bem!