简单说,pynput 就是一个专门用来控制和监控输入设备的 Python 库。它主要负责两块:键盘和鼠标。
你可能听过 pyautogui,但说实话,pynput 在“监听”这块儿做得更细腻。它不仅能让你的程序模拟鼠标点击、键盘打字,还能像个“特务”一样,躲在后台听着你按了哪个键、挪了多远鼠标。最牛的是,它跨平台!Windows、macOS、Linux 通吃,代码写一遍,到处都能跑。
它解决了咱们哪些痛点?
说真的,这库解决的问题全是咱们生活里的“刚需”:
- • 重复性劳动: 那些没 API 的破软件,只能靠鼠标点?用它写个循环,你喝咖啡去,它在那儿点。
- • 全局热键: 想给自己的程序设个快捷键?比如按个
Ctrl+Alt+H 就自动截图?pynput 几行代码搞定。 - • 行为监控: 想分析一下自己一天敲了多少次代码?或者做个防沉迷提醒?它能实时记录你的输入频率。
- • 自动化测试: 模拟真实用户的各种骚操作,测试软件稳不稳。
安装起来贼简单
别看它功能强,安装就一句话的事儿。打开你的终端(CMD 或终端),输入:
pip install pynput
只要你网络别太拉胯,几秒钟就装好了。
上手实操:鼠标篇
咱们先看怎么控制鼠标。这代码直观得就像在说人话:
from pynput.mouse import Button, Controller
mouse = Controller()
# 获取当前坐标,看看鼠标在哪儿
print(f'当前位置: {mouse.position}')
# 瞬间移动到 (10, 20)
mouse.position = (10, 20)
# 模拟左键点一下
mouse.click(Button.left, 1)
# 模拟滚轮往下滚两格
mouse.scroll(0, 2)
上手实操:键盘篇
键盘控制更爽,连“打字”都能模拟:
from pynput.keyboard import Key, Controller
keyboard = Controller()
# 模拟按下空格
keyboard.press(Key.space)
keyboard.release(Key.space)
# 直接打出一串字符
keyboard.type('Hello World! 关注点赞不迷路')
监听功能:这才是它的灵魂!
很多人用 pynput 其实是为了它的“监听器(Listener)”。比如你想监听用户按了什么键:
from pynput import keyboard
defon_press(key):
print(f'你按下了: {key}')
with keyboard.Listener(on_press=on_press) as listener:
listener.join()
这段代码一跑,你键盘上的任何风吹草动,程序全知道。
优缺点大实话
咱们不吹不黑,这库虽然牛,但也有它的脾气。我整理了个表格,大家一眼就能看明白:
| | |
| 易用性 | | |
| 功能性 | | 无法拦截(Intercept)系统事件,只能监听。 |
| 兼容性 | | 在 Linux 下可能需要 root 权限或 X11 环境。 |
| 性能 | | |
总结一下
pynput 绝对是 Python 自动化工具箱里的“瑞士军刀”。如果你想做点自动化的脚本,或者想研究下人机交互,这玩意儿你绕不开。它比 pyautogui 更底层一点,灵活性也更高。
最后提醒一句:技术是用来提高效率的,千万别拿去干违法的事,咱们要做有情怀的程序员!
觉得有用的话,点个赞,转发给那个还在手动填表的小伙伴吧!
项目地址:https://github.com/moses-palmer/pynput