在Python中,我可以通過什麼方式在循環中做些什麼,而用戶還沒有給出輸入。 我有python客戶端,我要求用戶輸入,但雖然用戶沒有給出輸入,但我希望每五秒鐘更新一次。在用戶輸入沒有收到的時候做點什麼
我不能使用
while (raw_input==""):
update()
,因爲如果輸入「」,這意味着用戶已經輸入的東西(按回車鍵);
有沒有辦法做到這一點?
更新:
我仍然無法爲我工作得到任何東西。我試過下面的方法,也試過類似於這個線程的東西:waiting for user input in separate thread。我也嘗試將update()方法傳遞給應該在後臺工作的線程。但隨着事情的raw_input()使得它停留在等待輸入:
import threading
import time
def update():
while True:
time.sleep(5)
print "update"+'\n'
mythread = threading.Thread(target=update, args=())
mythread.daemon = True
mythread.start()
while True:
usrin=raw_input()
print "you typed: "+usrin
每當用戶輸入的東西,更新完成,然後usrin給出了回來。如果這是我想要的,我可以輕鬆地將update()放入最後一個while循環中。
如果我只是用update方法啓動這個線程,並在程序中不做任何其他操作(廢棄最後一個while循環),那麼在shell中每隔五秒更新一次,我仍然可以使用shell(即類型3+ 5,它給了我8)。我希望在程序中發生類似的情況,當用戶不活動更新時,以及他是否反應並返回更新。
注意:另外,我目前使用python 2.7.8,切換版本有幫助嗎?
也許使用'thread'是一個不錯的選擇。 – 2014-10-10 20:52:06
https://docs.python.org/2/library/threading.html https://docs.python.org/2/library/multiprocessing.html#module-multiprocessing – 2014-10-10 20:55:15