> 技术文档 > Python 之 keyboard

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 keyboardimport timekeyboard.press(\"win\")keyboard.press(\"r\")keyboard.release(\"r\")keyboard.release(\"win\")time.sleep(0.5)keyboard.write(\"cmd\\n\") # \\n 表示回车

关键点

  • pressrelease 需成对调用以避免卡键。
  • 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 可注销已绑定的热键。

常见问题解决

  1. 权限问题(Linux/macOS): 需要以管理员权限运行脚本,或使用 sudo 执行。

  2. 事件阻塞: 长时间监听时建议单独开线程,避免阻塞主程序。

  3. 键名映射: 特殊键需使用标准名称,如 \"ctrl\"\"space\",完整列表参考官方文档。


高级应用

记录并回放按键序列

recorded = keyboard.record(until=\"esc\") # 录制到ESC按下keyboard.play(recorded) # 回放

阻塞特定按键

keyboard.block_key(\"a\") # 阻止字母A的输入

通过这三个实例和扩展功能,keyboard 库能够满足从基础监听、自动化操作到复杂热键管理的多样化需求。实际开发中建议结合多线程或异步框架提升响应效率。

华夏e家网