我需要在按下键盘键q时停止一个程序。如何在下面的代码中实现这一点?我如何忽略time.sleep
并检测按键并通过打印东西退出程序?目前,只有在10秒后才能检测到按键。假设我在3秒后按q,程序没有退出。
import sys
import time
import keyboard
def hd():
print("Hi")
time.sleep(10)
if keyboard.is_pressed("q"):
print(keyboard.is_pressed("q"))
sys.exit()
while True:
hd()
3条答案
按热度按时间8e2ybdfx1#
您可以添加一个热键,而不是轮询键盘来检查是否按下了某个键。当按下热键
q
(或您喜欢的任何键)时,将调用触发器函数quit
。7uzetpgm2#
time.sleep()
是阻塞调用。程序运行时不会发生任何事情。缩短间隔。例如,不是睡10秒,而是睡100 × 0.1秒。
对于更复杂的行为(在执行实际工作的同时还侦听键盘事件),您将不得不考虑多线程。
8zzbczxx3#
如果你把主线程的pid发送给按键回调函数,你可以在子线程中杀死主线程,就像这样: