(Python) Contando linhas em um arquivo enorme (> 10 GB) o mais rápido possível [duplicado]
Esta pergunta já tem uma resposta aqui:
Como obter uma contagem de linhas mais barata em Pytho 37 respostas Eu tenho um script muito simples agora que conta linhas em um arquivo de texto usandoenumerate()
:
i = 0
f = open("C:/Users/guest/Desktop/file.log", "r")
for i, line in enumerate(f):
pass
print i + 1
f.close()
@This leva cerca de 3 minutos e meio para percorrer um arquivo de log de 15 GB com ~ 30 milhões de linhas. Seria ótimo se eu pudesse obtê-lo em menos de dois minutos ou menos, porque esses são logs diários e queremos fazer uma análise mensal; portanto, o código terá que processar 30 logs de ~ 15 GB - mais de uma hora e meia possivelmente , e gostaríamos de minimizar o tempo e a carga de memória no servidor.
Eu também aceitaria um bom método de aproximação / estimativa, mas ele precisa ter cerca de 4 sig fig .
Obrigado