Python中用keyboard库实现监听用户输入
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库实现监听用户输入相关推荐
- java edittext 输入监听_Android应用开发之Android EditText 监听用户输入完成的实例
本文将带你了解Android应用开发Android EditText 监听用户输入完成的实例,希望本文对大家学Android有所帮助. 我们都知道, Android EditText输入框,并没有 ...
- iOS 16 修改第三方库实现监听 SwiftUI 中 sheet 弹出视图的下滑关闭动作
功能需求 我们已经在 iOS 16 中 SwiftUI 防止弹出的 sheet 视图被下滑关闭(dismiss)的新解决方案 这篇博文中介绍过如何在 iOS 16 中禁止用户下滑关闭弹出的 sheet ...
- 微信被指监听用户,腾讯回应;谷歌意外推送 Android 11 Beta 更新;Linux 5.7 发布 | 极客头条...
整理 | 屠敏 头图 | CSDN 下载自视觉中国 快来收听极客头条音频版吧,智能播报由出门问问「魔音工坊」提供技术支持. 「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客 ...
- 百度被告监听用户,回应“没那能力”,但小米说锅就是你的!
点击上方"CSDN",选择"置顶公众号" 关键时刻,第一时间送达! 随便下载一款手机应用,开启时除了要求获取"位置权限"."存储权 ...
- JS监听用户按下ESC
JS监听用户按下ESC $(document).ready(function(){}).keydown(function (e) {if (e.which === 27){console.log('按 ...
- 网传!微信监听用户聊天记录
近日,网传"微信私下监听用户聊天记录,针对性推送朋友圈广告,引起了热议 了解到,有网友爆料称,微信会私下监听用户的聊天内容信息,然后针对性的推送聊天内容相关的广告信息,很多时候,前脚刚聊完, ...
- 监听用户在页面停留的时长 / 监听多个页面时长
1.监听用户在页面停留的时长 2.如果要监听多个页面的时间,并且返回上一页累加上次浏览的时间功能 //记录阅读任务阅读列表recordTaskList() {this.quit_time = 0;le ...
- uniapp实战项目 (仿知识星球App) - - 利用computed监听用户操作
实战项目名称:仿知识星球App 技术栈:前端 => uni-app ( 后端:Node.js + Mysql + Apollo + Graphql ) 已实现功能:微信登录,创建星球,内容管理, ...
- wifipumpkin3搭建钓鱼wifi监听用户行为
wifipumpkin3搭建钓鱼wifi监听用户行为 一.安装wifipumpkin3 git clone https://github.com/P0cL4bs/wifipumpkin3.git cd ...
最新文章
- swift实现ios类似微信输入框跟随键盘弹出的效果
- Oracle SQL 内置函数大全
- tf keras Dense源码解析
- c#进阶(5)—— WCF 实现简单预订功能
- php传输的多个id集中为一条记录,如何将多个ID应用于Mysql中的一条记录?
- 外呼机器人起名_电销外呼机器人如此受欢迎,今天终于知道原因了
- docker server 容器连接sql_Docker 容器的网络连接
- 客户服务器网络系统的优缺点,浅析网络存储方案的三种类型及其优缺点
- java中伪代码_问Java的伪代码怎么书写
- 北京年内首现二手房连续三日成交破450套
- 抖音育儿类账号的创作灵感分享, 想进圈的不妨了解一下
- leetcode之动态规划刷题总结1(Java)
- OSS回源的几种方式和应用场景
- 237. 删除链表中的节点
- 使用idea运行CS项目后“客户端页面加载不出来“的解决方法
- 解决小米远程管理下电脑出现ftp文件错误提示
- skipped: maximum number of running instances reached (1)
- 分享个梦塔防辅助工具,自动化控制刷图升级脚本
- 对于毛星云opencv教程中的方法汇总
- html图片网格线,使用 CSS3 绘制网格线
热门文章
- “沉浸式”体验?异形屏适配?我把他们扒光了明明白白告诉你应该这样做
- iis服务器响应上限,HTTP 500 或超出响应缓冲区限制 - Internet Information Services | Microsoft Docs...
- canvas 初识,canvas基本语法练习 -01
- Echarts 问题解决 —— 图表数据过多导致浏览器卡顿、y轴数据添加单位、带圆角及柱状背景的柱状图、legned 图例超出部分显示省略号、柱状图 / 拓扑图(气泡图)渐变色效果
- 谷歌浏览器停用开发者模式.....解决
- 安装深度linux系统卡住不动,Deepin Linux 15(.1)启动即卡死的问题
- 简述osi七层模型和TCP/IP五层模型
- 存在恢复视力的办法吗?别再傻了!
- Python——数据存储的三种方法
- 三元运算符 嵌套 php,php中的三元运算符详解