简介:在 Python 开发过程中可能会遇到的问题:如何处理中断信号和键盘事件。了解如何处理这些事件,可以帮助我们更好地控制程序的执行流程。用 signal 库来处理各种信号。比如可以设置当接收到 SIGINT 信号(通常是用户按下 Ctrl+C)时,执行特定的操作。对于键盘事件的处理,也可以处理鼠标事件。Python 标准库并没有直接的支持。但是可以使用一些第三方库"pynput"来完成这项任务。
历史攻略:
安装:
pip install pynput
案例源码:
# -*- coding: utf-8 -*-
# time: 2023/7/19 10:49
# file: input_listener.py
# 公众号: 玩转测试开发
from pynput import keyboard, mouse
import time
exit_program = False
def on_press(key):
global exit_program
try:
if key.char == 'q':
print('你进行了 键盘按键 q,程序退出!')
exit_program = True
except AttributeError:
pass
def on_click(x, y, button, pressed):
global exit_program
if pressed:
print('你进行了 鼠标点击,程序退出!')
exit_program = True
keyboard_listener = keyboard.Listener(on_press=on_press)
mouse_listener = mouse.Listener(on_click=on_click)
keyboard_listener.start()
mouse_listener.start()
def main():
global exit_program
try:
while True:
if exit_program:
break
print('程序正在运行...')
time.sleep(1)
except KeyboardInterrupt:
print('你按下了 Ctrl+C!')
finally:
keyboard_listener.stop()
mouse_listener.stop()
if __name__ == '__main__':
main()
运行结果: