How can I read large text files line by line, without loading them into memory? [duplicate]
Как я могу читать большие текстовые файлы построчно, не загружая их в память?
Я хочу прочитать большой файл (> 5 ГБ), построчно, не загружая все его содержимое в память. Я не могу использовать readlines(), поскольку это создает очень большой список в памяти.
Переведено автоматически
Ответ 1
Используйте for цикл для файлового объекта, чтобы читать его построчно. Используйте with open(...), чтобы позволить менеджеру контекста убедиться, что файл закрыт после чтения.:
withopen("log.txt") as infile: for line in infile: print(line)
Ответ 2
Все, что вам нужно сделать, это использовать объект file в качестве итератора.
for line inopen("log.txt"): do_something_with(line)
Еще лучше использовать context manager в последних версиях Python.
withopen("log.txt") as fileobject: for line in fileobject: do_something_with(line)
Это также автоматически закроет файл.
Ответ 3
Пожалуйста, попробуйте это:
withopen('filename','r',buffering=100000) as f: for line in f: print line