2012-10-01 123 views
1

可能重複原始輸入:
raw_input and timeout有時間限制

我想知道我怎麼可以讓我擁有的raw_input時間限制。

我想是這樣的raw_input =(「你想做什麼?」) ,然後如果輸入不小於5秒給定,它會打印出「爲時已晚」

我已經一直試圖讀取,但似乎沒有像這樣的東西可用於raw_input

+2

查看http://stackoverflow.com/questions/3471461/raw-input-and-timeout,它可能有你所需要的。 – paxdiablo

+0

@paxdiablo:這是否(一)在Windows上工作,和(b)保證你永遠不會得到'stdin'是''read'able但不'readline'able的情況?如果是這樣,那可能是最好的解決方案。 – abarnert

+0

如果你不能使用'select',你需要一些方法來取消'raw_input',比如發送一個'signal',或者使用'multiprocessing'在一個子進程中執行並殺死它,或者...除此之外,你可能需要一些特定於平臺的API或忙於等待。 – abarnert

回答

0

使用一個timer對象,將其設置爲所需的秒數;只要調用事件對象,就使用tje timer函數來顯示你想要的消息。

+0

如果主線程在'raw_input'上被阻塞,'Timer'不能解鎖它,所以這並不能解決問題。 – abarnert