社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

这个牛逼的Python模块,能让你轻松模拟并记录键盘操作

Python编程 • 2 年前 • 349 次点击  
来自公众号:Python实用宝典

模拟键盘操作执行自动化任务,我们常用的有 pyautowin 等自动化操作模块。但是这些模块有一个很大的缺点,编译的时候非常依赖 windows 的C语言底层模块。

今天介绍的这个模块叫做 keyboard 它有一个最大的优点:纯Python原生开发,编译时完全不需要依赖C语言模块。一行命令就能完成安装,非常方便。

1.准备


开始之前,你要确保Python和pip已经成功安装在电脑上,如果没有,可以访问这篇文章:超详细Python安装指南 进行安装。

(可选1) 如果你用Python的目的是数据分析,可以直接安装Anaconda:Python数据分析与挖掘好帮手—Anaconda,它内置了Python和pip.

(可选2) 此外,推荐大家用VSCode编辑器,它有许多的优点:Python 编程的最好搭档—VSCode 详细指南

请选择以下任一种方式输入命令安装依赖
1. Windows 环境 打开 Cmd (开始-运行-CMD)。
2. MacOS 环境 打开 Terminal (command+空格输入Terminal)。
3. 如果你用的是 VSCode编辑器 或 Pycharm,可以直接使用界面下方的Terminal.

pip install keyboard

2.基本使用


按下并释放:模拟键盘按下某些键或组合键后释放,比如shift + S, 并增加空格:

import keyboard

keyboard.press_and_release('shift+s, space')

输入文字:

import keyboard

keyboard.write('Python 实用宝典')

等待触发按键并响应:

# 公众号:Python实用宝典
import keyboard

keyboard.add_hotkey('ctrl+shift+a'print, args=('宝典哥触发了热键'))
keyboard.wait()

这样程序就会监控 "ctrl+shift+a" 组合键的触发情况,一旦组合键触发,就会执行第二个参数的函数,并将第三个参数传入第二个函数的参数中。

等待触发某个按键:

# 公众号:Python实用宝典
import keyboard

keyboard.add_hotkey('ctrl+shift+a'print, args=('宝典哥触发了热键'))
keyboard.wait('esc')

这样,按下 ESC 就会终止等待,继续往下运行程序。

3.高级功能


记录功能:

# 公众号:Python实用宝典
import keyboard

recorded = keyboard.record(until='esc')
print(recorded)

可以看到,除非你按下esc,它会记录所有执行过的键盘操作。

重放操作:

# 公众号:Python实用宝典
import keyboard

recorded = keyboard.record(until='esc')
print(recorded)
keyboard.play(recorded, speed_factor=3)

play方法能完全模拟你刚记录下的所有键盘操作。

替换操作:

# 公众号:Python实用宝典
import keyboard

keyboard.add_abbreviation('@@''Python 实用宝典')
keyboard.wait('esc')

输入@@并按下空格,它会将你刚输入的@@替换为 Python 实用宝典.

怎么样,这个简单实用的Keyboard模块,你学会使用了吗?

我们的文章到此就结束啦。

--- EOF ---


推荐↓↓↓

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/150244
 
349 次点击