Leyendo enormes datos de archivos y llamándolos

Estoy creando un progtwig que lee x, y, z en el formato de (1.000 2.000 3.000), la primera columna es x la segunda es y y la tercera es la z. Me gustaría leer estos datos de este archivo (hiz.txt) y luego consultarlos como variables más adelante. Estoy buscando alrededor de 50-100 filas de estos datos, y quiero que mi progtwig siga buscando y transfiriendo hasta que llegue al final.

Supongo que con “datos enormes” quiere decir que el archivo no se ajustará a la memoria, por lo que debe ir línea por línea.

También asumo que solo desea guardar las 50 o más filas que está buscando y que esas cabrán en la memoria.

Así me gusta esto:

theDataIWant = [] def isThisSomethingIWant(x, y, z): return the condition involving ... x ... y ... z ... for line in open('myfile','r'): x, y, z = line.split(" ") if isThisSomethingIWant(x, y, z): theDataIWant.append( (x, y, z) )