按键并等待一段固定的时间

时间:2014-05-27 14:32:53

标签: python input time

我想让python程序在每个循环周期等待1'(不一定是实时的,所以我很好用time.sleep(1)准确度)之后我想知道是否有一个键被压了,如果是的话。

我在Python wait x secs for a key and continue execution if not pressed找到了一个解决方案,但这不是我的问题。因为当按下按钮时,我仍然想等待第二个按钮的剩余时间。

操作系统:赢7 - 但最好是跨平台(至少对于ubuntu)

我确实试过msvcrt但这对我来说似乎很笨拙,我想知道是否还没有更直接的前进方法。当然,我不是第一个遇到这个问题的人。

1 个答案:

答案 0 :(得分:1)

这是一个使用线程的简单示例。

import threading
import time

# define a thread which takes input
class InputThread(threading.Thread):
    def __init__(self):            
        threading.Thread.__init__(self)
        self.user_input = None

    def run(self):
        self.user_input = input('input something: ')

    def get_user_input(self):
        return self.user_input

# main
it = InputThread()
it.start()
while True:
    print('\nsleeping 1s and waiting for input... ')
    time.sleep(1)
    ui = it.get_user_input()
    if ui != None:
        print('The user input was', ui)
        it = InputThread()
        it.start()