跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Python

Python keyboard 库:从安装到实战应用

介绍 Python keyboard 库的安装与核心功能,包括按键监听、模拟输入和全局热键设置。通过五大实战场景演示具体用法,并提供常见问题解决及跨平台适配指南。强调权限要求与使用规范,帮助开发者安全高效地实现键盘自动化控制。

心动瞬间发布于 2026/3/23更新于 2026/9/911K 浏览

快速入门:安装与基础概念

安装方法

方法一:通过 pip 安装

pip install keyboard

方法二:源码安装

git clone <repository_url>
cd keyboard
python setup.py install
核心功能一览
功能类别主要方法应用场景
事件监听on_press(), hook()按键记录、自动化工具
模拟输入write(), send()自动化脚本、测试工具
热键注册add_hotkey()快速启动、快捷操作
宏录制record(), play()重复性任务、教学演示

实战演练:五大核心应用场景

场景一:基础按键监听

想要知道用户按下了什么键?试试这个简单示例:

import keyboard

def on_key_event(event):
    print(f'按键:{event.name} | 类型:{event.event_type}')

# 监听所有按键事件
keyboard.hook(on_key_event)
keyboard.wait('esc') # 按 ESC 键退出

运行效果:

按键:a | 类型:down
按键:a | 类型:up
按键:shift | 类型:down
按键:A | 类型:down
场景二:全局热键设置

创建全局快捷键,无论程序是否在焦点状态都能响应:

import keyboard

def open_browser():
    print('正在打开浏览器...')

 ():
    ()


keyboard.add_hotkey(, open_browser)
keyboard.add_hotkey(, save_file)
()
keyboard.wait()
def
save_file
print
'文件已保存!'
# 注册热键
'ctrl+shift+b'
'ctrl+s'
print
'热键已激活!按 ESC 退出...'
'esc'
场景三:自动化文本输入

需要自动填写表单或发送消息?write() 方法帮你搞定:

import keyboard
import time

# 等待 3 秒后开始输入
time.sleep(3)
keyboard.write('Hello, World! 这是一段自动输入的文字。')
场景四:按键状态检测

判断特定按键是否被按下:

import keyboard

while True:
    if keyboard.is_pressed('space'):
        print('空格键被按下了!')
        break
场景五:宏录制与回放

录制你的操作并重复执行:

import keyboard

print('开始录制...按 ESC 停止')
recorded = keyboard.record(until='esc')
print('录制完成!开始回放...')
keyboard.play(recorded, speed_factor=2) # 2 倍速回放

高级技巧:解决常见问题

问题 1:程序立即退出

❌ 错误做法:

keyboard.add_hotkey('space', lambda: print('按了空格!')) # 程序执行完毕,热键失效

✅ 正确做法:

keyboard.add_hotkey('space', lambda: print('按了空格!'))
keyboard.wait() # 永久阻塞
问题 2:CPU 占用率过高

❌ 错误做法:

while not keyboard.is_pressed('space'): continue
print('检测到空格!')

✅ 推荐做法:

keyboard.wait('space')
print('检测到空格!')
问题 3:回调函数执行时机

❌ 错误做法:

keyboard.add_hotkey('space', print('空格被按了'))

✅ 正确做法:

keyboard.add_hotkey('space', lambda: print('空格被按了'))

项目结构深度解析

了解项目结构有助于更好地使用这个库:

keyboard/
├── keyboard/ # 核心源码目录
│   ├── __init__.py # 主要 API 接口
│   ├── _keyboard_event.py # 事件处理
│   ├── _winkeyboard.py # Windows 实现
│   └── _nixkeyboard.py # Linux 实现
├── examples/ # 实用示例代码
│   ├── pressed_keys.py # 按键状态检测
│   ├── customizable_hotkey.py # 可配置热键
│   └── 10_second_macro.py # 宏录制示例
└── setup.py # 安装配置

平台适配指南

Windows 系统
  • 无需特殊权限
  • 支持按键抑制功能
  • 完整的媒体键支持
Linux 系统
  • 需要 root 权限
  • 通过读取设备文件实现
  • 部分媒体键可能无法识别
macOS 系统
  • 实验性支持
  • 功能可能受限

重要注意事项

  1. 权限要求:Linux 系统下需要 sudo 权限才能正常工作
  2. SSH 限制:通过 SSH 连接时无法捕获键盘事件
  3. 游戏兼容:部分游戏可能拦截所有键盘事件
  4. 使用规范:请勿用于恶意目的,如键盘记录器或不当用途

总结

Python keyboard 库为开发者提供了强大的键盘控制能力,从简单的按键监听到复杂的宏操作,都能轻松实现。通过本文的指南,相信你已经掌握了:

  • 库的安装方法
  • 基础功能使用
  • 常见问题解决
  • 高级应用技巧

现在就开始使用 keyboard 库,让你的 Python 程序拥有更强大的交互能力!

记住,强大的工具需要负责任的使用。

目录

  1. 快速入门:安装与基础概念
  2. 安装方法
  3. 核心功能一览
  4. 实战演练:五大核心应用场景
  5. 场景一:基础按键监听
  6. 监听所有按键事件
  7. 场景二:全局热键设置
  8. 注册热键
  9. 场景三:自动化文本输入
  10. 等待 3 秒后开始输入
  11. 场景四:按键状态检测
  12. 场景五:宏录制与回放
  13. 高级技巧:解决常见问题
  14. 问题 1:程序立即退出
  15. 问题 2:CPU 占用率过高
  16. 问题 3:回调函数执行时机
  17. 项目结构深度解析
  18. 平台适配指南
  19. Windows 系统
  20. Linux 系统
  21. macOS 系统
  22. 重要注意事项
  23. 总结

更多推荐文章

查看全部
  • 基于 SpringBoot 的高校图书馆借阅管理系统设计与实现
  • 技术面试中高质量简历的编写指南与核心要素
  • Git 下载、安装与配置教程
  • Visual Studio 中配置和使用 OpenCV(Python)
  • 两个月学习大语言模型(LLM)的详细学习计划与实战指南
  • AI+AR智能眼镜年终盘点:巨头入场驱动产业提速,规模化拐点加速来临!
  • Cursor IDE 中 Spring Boot 项目启动内存不足问题解决方案
  • Stable Diffusion WebUI Docker 部署实战指南
  • Android 开发面试经验与实战指南
  • VS Code 远程连接后 GitHub Copilot 无法使用修复方案
  • 基于Python的高校毕业生招聘信息推荐系统设计与实现
  • Python 办公自动化:Word 文档操作与报告生成
  • 2026 年医疗 AI 可信系统全栈实现方案(上)
  • MySQL 索引与 B+ 树核心知识总结
  • AI 智能体驾驭工程(Harness Engineering)全解析
  • Docker 安装需 WSL 但下载慢的离线安装方案
  • 1Panel+Ollama+WebUI:打造本地AI模型的完整指南(附Gemini插件教程)
  • 绿色 AI:让智能计算与地球共生
  • 哈希表实现详解:开放定址法与链地址法
  • Java 链表基础与 LinkedList 核心原理

相关免费在线工具

  • curl 转代码

    解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online

  • Base64 文件转换器

    将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online

  • Markdown转HTML

    将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online

  • HTML转Markdown

    将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online

  • JSON 压缩

    通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online