一个解决方法是列表推导式和切片操作符:
with open(filename, 'r') as infile:lines = [line for line in infile][:N]之后lines是一排排的。但是,这将将完整的文件加载到内存中。
如果您不想这样做(即如果文件很大的话),那么还有另一个解决方案,使用生成器表达式和islice:
from itertools import islicewith open(filename, 'r') as infile:lines_gen = islice(infile, N)lines_gen是生成器对象,它为您提供文件的每一行,可以在如下循环中使用:
for line in lines_gen:print line这两种解决方案都为您提供了最多N行(如果文件没有那么多,则这两种解决方案都会减少)。
Python入门教程完整版(懂中文就能学会)