前言
-使用keyboard库来监听键盘按键
# 使用keyboard库需要先安装,可以使用pip命令进行安装
pip install keyboard
一、方法
1.单线程退出
- 使用keyboard库来监听键盘按键,然后在循环中不断检测是否按下了esc键
import keyboard
while True:
# do something
# 检测是否按下了esc键
if keyboard.is_pressed('esc'):
break # 退出循环
# quit() # 退出程序
2.多线程退出
方法一:
- 在主线程中,我们使用keyboard.wait(‘esc’)来等待esc键按下,这会阻塞主线程直到esc键被按下。在子线程中,我们可以使用keyboard.is_pressed(‘esc’)来检测esc键是否被按下。当检测到esc键被按下时,子线程会退出循环,从而结束子线程的执行。
import threading
import keyboard
def do_something():
while True:
print("执行任务")
# 检测是否按下了esc键
if keyboard.is_pressed('esc'):
break # 退出循环
# quit() # 退出程序
# 创建线程并启动
t = threading.Thread(target=do_something)
t.start()
# 等待esc键按下
keyboard.wait('esc')
方法二:
- 当while循环中包含time.sleep()等待时间后,方法一者无法满足。
- 在主线程中,我们使用keyboard.wait(‘esc’)来等待esc键按下,这会阻塞主线程直到esc键被按下。在子线程中我们添加daemon=True参数,当主线程结束子线程会随主线程一起结束。
import threading
import keyboard
import time
def do_something():
while True:
print("执行任务")
time.sleep(5)
# 创建线程并启动
t = threading.Thread(target=do_something, daemon=True)
t.start()
# 等待esc键按下
keyboard.wait('esc')
文章出处登录后可见!
已经登录?立即刷新