Python 之 keyboard
keyboard 库简介
Python 的 keyboard
库是一个用于模拟和控制键盘输入的轻量级工具,支持按键监听、组合键触发和文本输入等功能。它跨平台支持 Windows、Linux 和 macOS,常用于自动化脚本或测试场景。
安装方法
通过 pip 安装最新版本:
pip install keyboard
基础功能
- 按键监听:实时捕获键盘事件。
- 模拟输入:发送虚拟按键或文本。
- 热键绑定:自定义组合键触发动作。
实例一:监听按键并打印
以下代码监听按键并输出按下的键名:
import keyboarddef on_key_press(event):print(f"Pressed: {event.name}")keyboard.on_press(on_key_press)
keyboard.wait("esc") # 按ESC退出监听
说明:
on_press
回调函数接收事件对象,包含name
(键名)和scan_code
等属性。wait
阻塞线程直到触发指定按键。
实例二:模拟快捷键操作
自动按下 Win+R
打开运行窗口并输入命令:
import keyboard
import timekeyboard.press("win")
keyboard.press("r")
keyboard.release("r")
keyboard.release("win")
time.sleep(0.5)
keyboard.write("cmd\n") # \n 表示回车
关键点:
press
和release
需成对调用以避免卡键。write
直接输入字符串,支持特殊字符如\t
(制表符)。
实例三:全局热键触发任务
定义 Ctrl+Alt+P
组合键执行自定义函数:
import keyboarddef show_message():print("Hotkey triggered!")keyboard.add_hotkey("ctrl+alt+p", show_message)
keyboard.wait("esc") # 持续监听直至ESC按下
注意事项:
- 热键字符串格式为小写,
+
连接组合键。 - 使用
remove_hotkey
可注销已绑定的热键。
常见问题解决
权限问题(Linux/macOS): 需要以管理员权限运行脚本,或使用
sudo
执行。事件阻塞: 长时间监听时建议单独开线程,避免阻塞主程序。
键名映射: 特殊键需使用标准名称,如
"ctrl"
、"space"
,完整列表参考官方文档。
高级应用
记录并回放按键序列:
recorded = keyboard.record(until="esc") # 录制到ESC按下
keyboard.play(recorded) # 回放
阻塞特定按键:
keyboard.block_key("a") # 阻止字母A的输入
通过这三个实例和扩展功能,keyboard
库能够满足从基础监听、自动化操作到复杂热键管理的多样化需求。实际开发中建议结合多线程或异步框架提升响应效率。