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. 统计学Java_【gloomyfish】基于Java的统计学计算结果
  2. 关于真正免费的嵌入式GUI
  3. php asp.net 代码量少,.NET_asp.net 反射减少代码书写量, 复制代码 代码如下:public b - phpStudy...
  4. [html] 使用history路由方式时,你有自己动手配置过服务器端吗?为什么要配服务器端?怎么配?
  5. Java字符串替换前缀,从Bash中的字符串中删除固定的前缀/后缀
  6. java环境变量代表的含义_java 环境变量的涵义
  7. S11 day 94 RestFramework 之 APIView视图
  8. 用shell查找某目录下的最大文件
  9. 计时器 【扩展欧几里得+BSGS】
  10. easyui 输入框、选择框、文字框
  11. 必做作业3:原型化系统---乘车app
  12. 用java计算_用Java写的计算器
  13. 首发|罗振宇2018“时间的朋友”跨年演讲未删减全文
  14. JVM快速入门(下)
  15. 杭州线上办理水电燃气过户
  16. LLC开关电源详细工作过程
  17. 【工作】Amazon Fraud Detection
  18. Excel2007版的常用功能(7):Excel公式与函数
  19. 游戏美术设计从业者过了30岁后都是如何发展的?
  20. 番茄工作法到底对我们的时间管理起到了什么作用?

热门文章

  1. 派送点小店代金劵 不用客气
  2. Windows电脑常用快捷键
  3. python 日期加一天_python 当前时间多加一天、一小时、一分钟
  4. android手机icoude邮件,如何在Android设备上访问Apple应用和数据?教程来了!
  5. 查看电脑操作、上网记录
  6. 钥匙串显示发布证书不受信任解决办法
  7. 关于windows状态栏卡死的解决办法
  8. 犯罪现场分析报告(Crime Scene Report)
  9. 选择全光谱对眼睛视力好不好?全光谱护眼台灯该怎么选
  10. 多屏理想照明方案 — ScreenBar Plus 评测