Например, файлы в Python являются итерабельными - они перебирают строки в файле. Я хочу подсчитать количество строк.
Один быстрый способ сделать это:
lines = len(list(open(fname)))
Однако он загружает весь файл в память (сразу). Это скорее поражает цель итератора (которому требуется только сохранить текущую строку в памяти).
Это не работает:
lines = len(line for line in open(fname))
поскольку генераторы не имеют длины.
Есть ли способ сделать это, не считая функции count?
def count(i):
c = 0
for el in i: c += 1
return c
EDIT: Чтобы понять, я понимаю, что весь файл должен быть прочитан! Я просто не хочу его в памяти сразу =).