def parse_file_keeplines(lines, require_order=None):
r"""
>>> def gen_lines(x):
... yield "# field:int\n"
... for i in range(x):
... yield "%s\n" % (test_field,)
>>> parsed = parse_file_keeplines(gen_lines(2))
>>> next(parsed)
'# field:int\n'
>>> test_field = 1; next(parsed)
('1\n', Rec(field=1))
>>> test_field = 2; next(parsed)
('2\n', Rec(field=2))
"""
lines_iter, lines_iter_parse = tee(iter(lines), 2)
try:
yield next(lines_iter)
except StopIteration:
raise Exception("No header")
for line, rec in izip(lines_iter, parse_file(lines_iter_parse)):
yield line, rec
评论列表
文章目录