Откройте файл через with и итерируйтесь по файловому объекту: for line in stream. В память будет попадать очередная строка и буфер, а не содержимое всего файла.
Как прочитать текстовый файл построчно, не загружая его целиком в ОЗУ?
Откройте файл через with и итерируйтесь по файловому объекту: for line in stream. В память будет попадать очередная строка и буфер, а не содержимое всего файла.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Откройте файл через with и итерируйтесь по файловому объекту: for line in stream. В память будет попадать очередная строка и буфер, а не содержимое всего файла.
Пример:
with open('data.txt', encoding='utf-8') as stream:
for line in stream:
process(line)
Здесь process — ваша функция обработки. Не используйте read() без размера, readlines() или list(stream), если файл велик. Строка сохраняет перевод строки; удаляйте его только при необходимости. Для файла с одной гигантской строкой построчное чтение тоже потребует много памяти: тогда нужен разбор ограниченными chunks с переносом незавершённого фрагмента.