Несмотря на то, что вы анализируете линии, убедитесь, что вы используете что-то, что поддерживает перемотку и перемотку, являясь источником данных вашей сетки данных. Вы не хотите сначала загружать все в память? Как насчет того, чтобы в следующий раз количество данных было в десять раз больше? Сделайте что-нибудь, что использует file.seek в глубине души, сначала не читайте все в память. Это мой совет.