我有一个生成器,应该从文件中返回行,我想稍后改进它,只返回特定的行:
def f():
with open ('a', 'r') as f:
while True:
l = f.readline()
if l:
yield l
else:
break
现在,这个生成器可以从一个始终显示文件的函数中调用,类似于:
def g():
my_generator = f()
while True:
print(my_generator.next() if SOME_CONDITION else 'waiting for new input')
# if got to StopIteration -> wait until a new line appears in file
我该怎么做?我能在my_generator
死后重新创建它吗?当我得到一条新线时(我怎么知道添加了一条线?(
你可以试试这个:
def g():
iterable = iter(f())
for x in iterable:
while True:
if not SOME_CONDITION:
print('waiting for new input')
else:
break
break
for x in iterable:
print(x)