Ответ 1
Файловые объекты Python предоставляют итераторы, которые будут читаться последовательно. file.readlines()
читает их все и возвращает список, что означает, что ему нужно все прочитать в памяти. Лучший подход (который всегда должен быть предпочтительнее readlines()
) - просто перебрать сам объект, например:
import zipfile
with zipfile.ZipFile(...) as z:
with z.open(...) as f:
for line in f:
print line
Обратите внимание на мое использование инструкции with
- файловые объекты являются контекстными менеджерами, а оператор with позволяет легко писать читаемый код, который гарантирует, что файлы закрыты, когда (даже при исключениях). Это также необходимо всегда использовать при работе с файлами.