【发布时间】:2011-09-02 01:13:30
【问题描述】:
我有一个这样的文件:
1
2
3
TAB
1
2
3
TAB
我想将 TAB 之间的行读取为块。
import itertools
def block_generator(file):
with open(file) as lines:
for line in lines:
block = list(itertools.takewhile(lambda x: x.rstrip('\n') != '\t',
lines))
yield block
我想这样使用它:
blocks = block_generator(myfile)
for block in blocks:
do_something(block)
我得到的块都是从第二行开始的,比如[2,3] [2,3],为什么?
【问题讨论】:
-
for 循环正在吃掉每个块的第一行