获得下一行
在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)