循环代码时获取输入

时间:2015-12-26 22:17:01

标签: python loops

我目前有一个Twitter机器人在我的时间轴中从Twitter传输推文。无论它做什么,我怎么能在接收推文(循环代码)的同时发送推文(获取键盘输入)。

这不是关于Twitter API的问题,只是关于如何在循环代码时获取输入的一般性问题。

3 个答案:

答案 0 :(得分:1)

我会为它创建一个特定的线程,当使用它时会调用你的Twitter API post函数。 (但这取决于你的代码的结构)

import threading

t1 = threading.Thread(target=post_from_keyboard)
t1.start()
t1.join()   

# Loop exits when users writes quit. 
# Obviously it won't post any Tweets with the word "quit"    
def post_from_keyboard():
    while(True):   
        kb_tweet = input("Enter Tweet or write "quit" to exit")
        if kb_tweet != "quit"
            your_tweet_api_call( kb_tweet )
        else:
            break

答案 1 :(得分:0)

据我所知,您不希望循环等待您在每次迭代中输入推文,因此您无法使用最常用的方法raw_input。

在这种情况下,它是特定于平台的。对于Unix系统,您应该使用select模块,而在Windows中,您拥有msvcrt模块。

使用select,想法是在每次迭代中检查stdin,并在得到消息时处理消息。

类似的东西:

import sys
import select

while True:
    message = select.select([sys.stdin], [], [], timeout=0.1)[0]
    if message:
        print(message)

答案 2 :(得分:-1)

也许,你正在寻找像这样的东西

userInput = raw_input()

while(userInput != q):
    #do something
    userInput = raw_input()