Python技巧:如何处理中断信号和键盘事件

简介:在 Python 开发过程中可能会遇到的问题:如何处理中断信号和键盘事件。了解如何处理这些事件,可以帮助我们更好地控制程序的执行流程。用 signal 库来处理各种信号。比如可以设置当接收到 SIGINT 信号(通常是用户按下 Ctrl+C)时,执行特定的操作。对于键盘事件的处理,也可以处理鼠标事件。Python 标准库并没有直接的支持。但是可以使用一些第三方库"pynput"来完成这项任务。

历史攻略:

Python:将控制台输出保存成文件

Python:手动设置超时则失败

安装:

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()

运行结果:
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值