运行python代码特定时间

时间:2017-05-03 19:32:02

标签: python twitter-oauth twitter-streaming-api

我有以下代码:

def gen_stream():
    stream  = twitter.STREAMING_API(key=1, payload={})
    for tweet in stream.run():
        yield tweet
def pipeline():
    for tweet in gen_stream():
        tweet_id=tweet.get('id')
        print(tweet_id)
if __name__ == '__main__':
    pipeline()

我怎样才能运行1分钟的代码。 我尝试过使用

if __name__ == '__main__':
    endtime=time.time()+60*1
    while time.time()<endtime:
        pipeline()

但是此代码在结束时间后仍会产生推文ID。如何在指定时间内运行pipeline

P.S gen_stream()工作正常。

1 个答案:

答案 0 :(得分:0)

问题是代码进入pipeline函数并永远在其中循环。

pipeline接受endtime参数

def gen_stream():
    stream  = twitter.STREAMING_API(key=1, payload={})
    for tweet in stream.run():
        yield tweet

def pipeline(endtime):
    for tweet in gen_stream():
        if time.time() > endtime:
            break
        tweet_id=tweet.get('id')
        print(tweet_id)

if __name__ == '__main__':
    endtime=time.time()+60*1
    pipeline(endtime)