python performance optimization line chunking

Python es la forma más rápida de leer un archivo de texto grande(varios GB)



performance optimization (1)

with open(<FILE>) as FileObj: for lines in FileObj: print lines # or do some other thing with the line...

leerá una línea a la vez en la memoria y cerrará el archivo cuando termine ...

Esta pregunta ya tiene una respuesta aquí:

Tengo un archivo de texto grande (~ 7 GB). Estoy buscando si existe la forma más rápida de leer archivos de texto grandes. He estado leyendo sobre el uso de varios enfoques como lectura parte por parte para acelerar el proceso.

en el ejemplo effbot sugiere

# File: readline-example-3.py file = open("sample.txt") while 1: lines = file.readlines(100000) if not lines: break for line in lines: pass # do something**strong text**

Para procesar 96.900 líneas de texto por segundo. Otros authors sugieren usar islice ()

from itertools import islice with open(...) as f: while True: next_n_lines = list(islice(f, n)) if not next_n_lines: break # process next_n_lines

list(islice(f, n)) devolverá una lista de las siguientes n líneas del archivo f . Usar esto dentro de un bucle te dará el archivo en trozos de n líneas