我正在阅读来自Twitter Streaming API的推文。连接到API后,我得到一个生成器。如何在某个特定时间退出发电机?
我正在循环播放收到的每条推文,但是我想在18PM退出迭代器。收到每条推文后,我会检查它是否晚于指定的时间戳并停止。
问题是我没有经常收到推文。所以,我可以在17:50收到一个,下一个在19PM。那时候我会发现时间已过,我需要停下来。
有没有办法在18PM时强制停止?
这里是我的代码的高级视图:
def getStream(tweet_iter):
for tweet in tweet_iter:
#do stuff
if time_has_passed():
return
tweet_iter = ConnectAndGetStream()
getStream(tweet_iter)
注意:遵循PEP 8(getStream应该是get_stream,正式推荐)是个好主意。 – EOL
为什么你的脚本不能在六点时停止运行? – jonrsharpe
我猜从tweet生成器中获得yieldvalue的时间是动态的,所以您必须在某种超时时间内包装下一个() - 调用以腾出空间来检查它是什么时间。请参阅http://stackoverflow.com/questions/492519/timeout-on-a-function-call – Moberg