pynput
这个库,咱们可以实现对键盘和鼠标的全面掌控,听起来是不是有点酷?而且,比起其他库如 pygame
或 pyglet
,pynput
在操作上更为简单,适合像咱们这种想快速搞定任务的技术人群。好了,废话不多说,马上开干!1. pynput
库的概述
pynput
库的概述pynput
是 Python 的一个库,专门用于控制和监控键盘和鼠标的输入操作。和一些图形界面库不同,它特别轻量,不需要 UI 支持,专注于输入设备操作,非常适合写一些小工具、自动化脚本等。pygame
这种主要用于游戏开发的库不同,pynput
更适合搞点儿自动化的小把戏,比如,自动回复、定时点击啥的,简直就是解放双手必备神器。2. 鼠标操作
鼠标控制
pynput.mouse
模块,并创建一个 Controller
对象来操控鼠标。初始化之后,你就可以随意移动鼠标、点击按钮了!from pynput.mouse import Button, Controller
mouse = Controller()
获取和设置鼠标位置
position
属性一查便知。如果想直接定位鼠标位置,比如直接跑到屏幕中央,可以这样:# 获取当前位置
print("当前鼠标位置:", mouse.position)
# 设置鼠标位置,比如屏幕中央(960, 540)
mouse.position = (960, 540)
print("鼠标已移动到:", mouse.position)
单击和双击操作
pynput
直接给我们提供了 click
方法。想象一下,如果你不想自己鼠标狂点,直接来段代码自动搞定吧!# 单击
mouse.click(Button.left, 1)
# 双击
mouse.click(Button.left, 2)
滚轮滑动
scroll
方法让你可以自定义滚动步数。向上滚动?向下滚动?任你随心所欲!# 向上滚动
mouse.scroll(0, 2)
# 向左滚动
mouse.scroll(-2, 0)
小贴士:记住不能同时在垂直和水平方向上滚动,pynput 目前不支持“对角线滚动”,一个方向一个方向来。
3. 鼠标监控
Listener
来监听事件,比如做一个记录鼠标动作的小工具就很方便。from pynput.mouse import Listener
# 定义监听器事件
def on_move(x, y):
print(f"鼠标移动到 ({x}, {y})")
def on_click(x, y, button, pressed):
if pressed:
print(f"鼠标 {button} 按下在 ({x}, {y})")
else:
print(f"鼠标 {button} 松开在 ({x}, {y})")
def on_scroll(x, y, dx, dy):
print(f"鼠标滚动在 ({x}, {y}),方向 ({dx}, {dy})")
# 开启监听
with Listener(on_move=on_move, on_click=on_click, on_scroll=on_scroll) as listener:
listener.join()
自动停止监听
False
来停止监听。def on_click(x, y, button, pressed):
if not pressed:
# 条件触发停止
return False
非阻塞监听
pynput
允许你以非阻塞模式启动监听,这样代码不会卡住。listener = Listener(on_move=on_move, on_click=on_click, on_scroll=on_scroll)
listener.start()
# ...执行其他代码
listener.stop() # 随时可停止监听
4. 键盘操作
基本操作
Controller
类。以下是模拟键盘按键的简单操作:from pynput.keyboard import Key, Controller
keyboard = Controller()
# 模拟按下一个字母
keyboard.press('a')
keyboard.release('a')
组合键操作
Ctrl+C
、Alt+Tab
等。pynput
里,咱们可以直接用 Key
类来定义这些常见的组合键,非常方便!# 模拟按住 Ctrl 键并按下 'c'
keyboard.press(Key.ctrl)
keyboard.press('c')
keyboard.release('c')
keyboard.release(Key.ctrl)
注意:按组合键时,一定记得按住和释放的顺序,顺序错误会导致奇怪的行为,比如咱们的 Ctrl 键一直没松开,导致后面全成了 Ctrl+某键的操作😂。
5. 键盘监控
Listener
监听键盘的按下和松开动作。from pynput.keyboard import Listener
def on_press(key):
print(f"按下: {key}")
def on_release(key):
print(f"松开: {key}")
# 条件判断停止监听,比如按下 ESC
if key == Key.esc:
return False
# 开启键盘监听
with Listener(on_press=on_press, on_release=on_release) as listener:
listener.join()
esc
键,监听就自动停止,这样我们也可以手动终止监听过程。pynput
是个相当强大且方便的库,用它来控制和监听鼠标键盘,轻松玩转你的输入设备。未来无论你是要做自动化测试、制作一些小工具,还是搞点有趣的“程序员恶作剧”,pynput
都能帮你轻松搞定。对编程、职场感兴趣的同学,大家可以联系我微信:golang404,拉你进入“程序员交流群”。
资料包含了《IDEA视频教程》、《最全python面试题库》、《最全项目实战源码及视频》及《毕业设计系统源码》,总量高达650GB。全部免费领取!全面满足各个阶段程序员的学习需求。