Python中用keyboard库实现监听用户输入

  • 前言
  • 一、keyboard库
  • 二、使用示例
    • 1.引入库

前言

在用Python做一个Selenium网页自动化工具时,发现如果用户提供的数据太多,需要很长时间才能做完,有时希望中途停止。那么要增加一个判断,如果用户按下了某个组合键,则优雅地退出(要把当前正在处理的任务完成,在下一个任务开始之前退出)。
先是研究了回调函数(callback), 发现是能够实现的(那是当然,哈哈), 但是比较复杂。后来发现其实用keyboard库中的add_hotkey() 可以轻松实现这一功能


一、keyboard库

如果用pip install keyboard不成功,可以到这里下载whl文件。
Link

二、使用示例

1.引入库

代码如下(示例):

import keyboard
import time
def setStopFlag():global blStopblStop = True
if __name__ == '__main__':blStop = False# set hot keykeyboard.add_hotkey('ctrl+shift+t',setStopFlag)print('----------Start-----------------')intCnt = 0    while intCnt < 10 and blStop == False:print( "%s  Print result from loop in main process, intCnt is: %d"%(time.ctime(),intCnt))time.sleep(5)print("now wake up!")intCnt +=1if blStop == False:print( 'Timeout!')else:print( 'End: stopped by user!')

设置一个退出标志, 在主功能中,判断标志是否被设置。设置了则退出。
调用add_hotkey()后,keyboard在后台监听. 当用户按下此组合键后,退出标志即可被设置。
整个功能是非阻塞的。

Python中用keyboard库实现监听用户输入相关推荐

  1. java edittext 输入监听_Android应用开发之Android EditText 监听用户输入完成的实例

    本文将带你了解Android应用开发Android EditText 监听用户输入完成的实例,希望本文对大家学Android有所帮助. 我们都知道, Android   EditText输入框,并没有 ...

  2. iOS 16 修改第三方库实现监听 SwiftUI 中 sheet 弹出视图的下滑关闭动作

    功能需求 我们已经在 iOS 16 中 SwiftUI 防止弹出的 sheet 视图被下滑关闭(dismiss)的新解决方案 这篇博文中介绍过如何在 iOS 16 中禁止用户下滑关闭弹出的 sheet ...

  3. 微信被指监听用户,腾讯回应;谷歌意外推送 Android 11 Beta 更新;Linux 5.7 发布 | 极客头条...

    整理 | 屠敏 头图 | CSDN 下载自视觉中国 快来收听极客头条音频版吧,智能播报由出门问问「魔音工坊」提供技术支持. 「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客 ...

  4. 百度被告监听用户,回应“没那能力”,但小米说锅就是你的!

    点击上方"CSDN",选择"置顶公众号" 关键时刻,第一时间送达! 随便下载一款手机应用,开启时除了要求获取"位置权限"."存储权 ...

  5. JS监听用户按下ESC

    JS监听用户按下ESC $(document).ready(function(){}).keydown(function (e) {if (e.which === 27){console.log('按 ...

  6. 网传!微信监听用户聊天记录

    近日,网传"微信私下监听用户聊天记录,针对性推送朋友圈广告,引起了热议 了解到,有网友爆料称,微信会私下监听用户的聊天内容信息,然后针对性的推送聊天内容相关的广告信息,很多时候,前脚刚聊完, ...

  7. 监听用户在页面停留的时长 / 监听多个页面时长

    1.监听用户在页面停留的时长 2.如果要监听多个页面的时间,并且返回上一页累加上次浏览的时间功能 //记录阅读任务阅读列表recordTaskList() {this.quit_time = 0;le ...

  8. uniapp实战项目 (仿知识星球App) - - 利用computed监听用户操作

    实战项目名称:仿知识星球App 技术栈:前端 => uni-app ( 后端:Node.js + Mysql + Apollo + Graphql ) 已实现功能:微信登录,创建星球,内容管理, ...

  9. wifipumpkin3搭建钓鱼wifi监听用户行为

    wifipumpkin3搭建钓鱼wifi监听用户行为 一.安装wifipumpkin3 git clone https://github.com/P0cL4bs/wifipumpkin3.git cd ...

最新文章

  1. swift实现ios类似微信输入框跟随键盘弹出的效果
  2. Oracle SQL 内置函数大全
  3. tf keras Dense源码解析
  4. c#进阶(5)—— WCF 实现简单预订功能
  5. php传输的多个id集中为一条记录,如何将多个ID应用于Mysql中的一条记录?
  6. 外呼机器人起名_电销外呼机器人如此受欢迎,今天终于知道原因了
  7. docker server 容器连接sql_Docker 容器的网络连接
  8. 客户服务器网络系统的优缺点,浅析网络存储方案的三种类型及其优缺点
  9. java中伪代码_问Java的伪代码怎么书写
  10. 北京年内首现二手房连续三日成交破450套
  11. 抖音育儿类账号的创作灵感分享, 想进圈的不妨了解一下
  12. leetcode之动态规划刷题总结1(Java)
  13. OSS回源的几种方式和应用场景
  14. 237. 删除链表中的节点
  15. 使用idea运行CS项目后“客户端页面加载不出来“的解决方法
  16. 解决小米远程管理下电脑出现ftp文件错误提示
  17. skipped: maximum number of running instances reached (1)
  18. 分享个梦塔防辅助工具,自动化控制刷图升级脚本
  19. 对于毛星云opencv教程中的方法汇总
  20. html图片网格线,使用 CSS3 绘制网格线

热门文章

  1. “沉浸式”体验?异形屏适配?我把他们扒光了明明白白告诉你应该这样做
  2. iis服务器响应上限,HTTP 500 或超出响应缓冲区限制 - Internet Information Services | Microsoft Docs...
  3. canvas 初识,canvas基本语法练习 -01
  4. Echarts 问题解决 —— 图表数据过多导致浏览器卡顿、y轴数据添加单位、带圆角及柱状背景的柱状图、legned 图例超出部分显示省略号、柱状图 / 拓扑图(气泡图)渐变色效果
  5. 谷歌浏览器停用开发者模式.....解决
  6. 安装深度linux系统卡住不动,Deepin Linux 15(.1)启动即卡死的问题
  7. 简述osi七层模型和TCP/IP五层模型
  8. 存在恢复视力的办法吗?别再傻了!
  9. Python——数据存储的三种方法
  10. 三元运算符 嵌套 php,php中的三元运算符详解