python读取文件并跳过n行,然后再次阅读并跳过

时间:2015-04-03 21:40:32

标签: python

我是python的新手。我需要读取前11行然后跳过接下来的9行并读取2行,跳过接下来的9行并读取2行直到文件结尾。

我感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

这里有一般的想法:
1.使用readlines()读取文件中的行到列表中 2.使用for循环遍历行的索引
3.在循环中使用if语句跳过相应的行。

MattDMo是正确的。如果您向我们展示您的尝试,它会有所帮助。

答案 1 :(得分:1)

您可以使用islice()模块中的itertools通过generator函数从文件中读取“切片”:

import itertools

def lines_of_interest(filename):
    with open(filename, 'r') as inf:
        for line in itertools.islice(inf, 11):  # yield the first 11 lines
            yield line
        while True:
            # out of next 11 lines, skip 9 and keep last 2
            lines = list(itertools.islice(inf, 9, 11))
            for line in lines:
                yield line
            if not lines:  # end-of-file?
                break

用法示例:

# create a test file
with open('data.dat', 'w') as outf:
    for i in xrange(1, 110):
        outf.write('line #%d\n' % i)

for line in lines_of_interest('data.dat'):
    # process line...
    print line,