列举文件对象中的下一行,直到n或eof



在python< 3.7中,我的代码有一个发电机,可以贯穿文件对象的行,直到固定值:

def parse_header(file_object):
    for index, line in enumerate(next(file_object) for x in range(max_value)):
        # do stuff to index and line

如果首先在max_value之前达到EOF,则先前允许停止。但是,使用PEP 479 RuntimeError会引起问题,我不知道如何重写它以返回。

坦率地说,您的代码看起来很奇怪。

我会做

def parse_header(file_object):
    for index, line in enumerate(file_object):
        if index == max_value:
            break
        print(index, line)

def parse_header(file_object):
    for index, line in zip(range(max_value), file_object):
        print(index, line)

两者都在Python 3.7.3

中工作

使用parse_header(file_object)后,您仍然可以使用next(file_object)

获得下一行

最新更新