Одним из решений было бы понимание списка и оператор среза:
with open(filename, 'r') as infile:
lines = [line for line in infile][:N]
После этого lines
- это кортеж строк.Однако это загрузит весь файл в память.Если вы не хотите этого (т.е. если файл может быть очень большим), есть другое решение, использующее выражение генератора и islice
из пакета itertools:
from itertools import islice
with open(filename, 'r') as infile:
lines_gen = islice(infile, N)
lines_gen
является объектом-генератором, который дает вам каждую строку файла и может использоваться в цикле следующим образом:
for line in lines_gen:
print line
Оба решения дают вам до N строк (или меньше, если файл нене так много).