Otimizando o salto de linha em arquivos de texto grandes
O processamento de arquivos de texto enormes linha por linha pode ser ineficiente ao buscar uma linha específica. O código fornecido percorre cada linha de um arquivo de 15 MB para atingir o número de linha desejado, negligenciando o fato de que a linha necessária pode estar localizada muito antes no arquivo.
Uma abordagem alternativa
Para resolver esse problema, considere empregar uma técnica de otimização que aproveite deslocamentos de linha. Isso envolve a leitura do arquivo inteiro uma vez para construir uma lista contendo o deslocamento inicial de cada linha.
Implementação
line_offset = [] # List to store line offsets
offset = 0 # Current offset
# Loop through each line in the file
for line in file:
line_offset.append(offset) # Store the current line offset
offset = len(line) # Update the offset for the next line
file.seek(0) # Reset the file pointer to the beginning
Uso
Para pular para uma linha específica (n), basta procurar o deslocamento correspondente:
line_number = n
file.seek(line_offset[line_number])
Essa abordagem elimina a necessidade de processar todas as linhas intermediárias, resultando em uma melhoria significativa de desempenho para arquivos grandes.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3