一次从特定行和N行读取文件

时间:2016-02-29 14:15:51

标签: python

我将从特定行开始读取文件,并一次读取N行。到目前为止,我一次读取N行数:

from itertools import islice

n = 10                                                                                    
with open(fname, 'r') as f:                                                               
    while True:                                                                           
        next_n_lines = list(islice(f, n))                                                 
        for line in next_n_lines:                                                         
            print line.rstrip()                                                           
        if not next_n_lines:                                                              
            break

有关从特定行号开始阅读的任何帮助。

2 个答案:

答案 0 :(得分:5)

使用itertools.islice有一个简单的解决方案:

N = 100  # starting line number
n = 10   # size of a chunk
with open(fname) as f:
    f = islice(f, N, None)  # creates an iterator that starts after N lines
    while True:
        next_n_lines = list(islice(f, n))
        for line in next_n_lines:
            print line.rstrip()
        if not next_n_lines:
            break

答案 1 :(得分:0)

你能使用如下所示的fileinput吗?

startNo = 1
N = 10
for line in fileinput.input("fileName"):
  if fileinput.lineno() > startNo + N:
    break
  if fileinput.lineno() >= startNo:
    print fileinput.lineno(),line