Optimización del salto de línea en archivos de texto grandes
Procesar archivos de texto masivos línea por línea puede resultar ineficiente cuando se busca una línea específica. El código proporcionado recorre cada línea de un archivo de 15 MB para llegar al número de línea deseado, ignorando el hecho de que la línea requerida puede estar ubicada mucho antes en el archivo.
Un enfoque alternativo
Para solucionar este problema, considere emplear una técnica de optimización que aproveche los desplazamientos de línea. Esto implica leer el archivo completo una vez para construir una lista que contenga el desplazamiento inicial de cada línea.
Implementación
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 saltar a una línea específica (n), simplemente busque el desplazamiento correspondiente:
line_number = n
file.seek(line_offset[line_number])
Este enfoque elimina la necesidad de procesar todas las líneas intermedias, lo que resulta en una mejora significativa del rendimiento para archivos grandes.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3