我想让python程序在每个循环周期等待1'(不一定是实时的,所以我很好用time.sleep(1)准确度)之后我想知道是否有一个键被压了,如果是的话。
我在Python wait x secs for a key and continue execution if not pressed找到了一个解决方案,但这不是我的问题。因为当按下按钮时,我仍然想等待第二个按钮的剩余时间。
操作系统:赢7 - 但最好是跨平台(至少对于ubuntu)
我确实试过msvcrt
但这对我来说似乎很笨拙,我想知道是否还没有更直接的前进方法。当然,我不是第一个遇到这个问题的人。
答案 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()