python_实现按键退出程序

前言

-使用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')

你可能感兴趣的:(#,日常记录,python,开发语言)