Ответ 1
with open(<FILE>) as FileObj:
for lines in FileObj:
print lines # or do some other thing with the line...
будет считывать одну строку в то время в память и закрывать файл по завершении...
У меня есть большой текстовый файл (~ 7 ГБ). Я ищу, если существует самый быстрый способ чтения большого текстового файла. Я читал об использовании нескольких подходов, как чтение chunk-by-chunk, чтобы ускорить процесс.
в примере effbot предложить
# File: readline-example-3.py
file = open("sample.txt")
while 1:
lines = file.readlines(100000)
if not lines:
break
for line in lines:
pass # do something**strong text**
чтобы обрабатывать 96 900 строк текста в секунду. Другие авторы предлагают использовать islice()
from itertools import islice
with open(...) as f:
while True:
next_n_lines = list(islice(f, n))
if not next_n_lines:
break
# process next_n_lines
list(islice(f, n))
вернет список следующих строк n
файла f
. Используя это внутри цикла, вы получите файл в кусках строк n
with open(<FILE>) as FileObj:
for lines in FileObj:
print lines # or do some other thing with the line...
будет считывать одну строку в то время в память и закрывать файл по завершении...