Метод readlines
читает файл весь . Вы не хотите делать это для файла, который является большим по отношению к размеру вашей физической памяти.
Исправление - прочитать файл небольшими порциями и обработать их по отдельности. Вы можете, например, сделать что-то вроде этого:
for line in f.xreadlines():
... do something with the line
xreadlines
возвращает не список строк, а итератор, который возвращает по одной строке за раз, когда его вызывает цикл for
. Еще более простой способ сделать это:
for line in f:
... do something with the line
В зависимости от того, что вы делаете, построчная обработка файла может быть простой или сложной. Я не совсем понял, что пытается сделать ваш пример кода, но похоже, что это должно быть выполнимо, чтобы сделать это построчно.