2016-08-30 52 views
1

我正在制作一个程序,它使用Tweepy提取实时推文,并通过函数运行它。我正在使用Tweepy Stream来完成获取推文的任务。不过,我希望在功能运行时,Tweepy仍然可以提取这些实时推文。我相信我需要线程Tweepy事件监听器,但我不完全知道如何做到这一点。如何打印Tweepy流

def doesSomething(s): 
    #function here 

class listener(tweepy.StreamListener): 
    def on_status(self, status): 
     doesSomething(status) 

stream_listener = listener() 
tweepy.Stream(auth = api.auth, listener=stream_listener) 
stream.filter(track=["Example"]) 

回答

1

这是你可以轻松适应... 的代码将创建一个线程在后台更新计数器而循环将连续打印的计数器的值的例子。 “停止”变量负责在主进程终止或退出时退出线程...

import threading 
import time 
from sys import stdout 

# Only data wihtin a class are actually shared by the threads 
class Counter(object): 
    counter = 0 
    stop = False 

# Function that will be executed in parallel with the rest of the code 
def function_1(): 
    for i in range(10): 
     if c.stop: return # With more will exit faster 
     time.sleep(2) 
     c.counter += 1 
     if c.stop: return 

# Create a class instance 
c = Counter() 

# Thread function_1 
d = threading.Thread(target=function_1) 
d.start() 

# Exit the thread properly before exiting... 
try: 
    for j in range(100): 
     stdout.write('\r{:}'.format(c.counter)) 
     stdout.flush() 
     time.sleep(1) 
except: 
    c.stop = True