当前位置:首页>python>这个Python库,专治各种“不服”和“手酸”!

这个Python库,专治各种“不服”和“手酸”!

  • 2026-10-21 13:28:42
这个Python库,专治各种“不服”和“手酸”!

这个Python库,专治各种”不服”和”手酸”!

有些软件死活不给API接口,有些网页表单要填几百遍,有些操作需要你像机器人一样重复点击——这些场景是不是让你抓狂?今天要介绍的PyAutoGUI,就是专门对付这类”硬骨头”的。它能让Python脚本接管你的鼠标和键盘,把那些枯燥的重复劳动全部自动化。只要是人能操作的界面,它就能模拟。

装上它,三分钟搞定

安装这玩意儿没什么花头,一行命令:

pipinstallpyautogui

装好之后,先来个最简单的试试水:

importpyautogui

# 获取屏幕分辨率
width, height = pyautogui.size()
print(f"你的屏幕是 {width} x {height}")

# 获取当前鼠标位置
x, y = pyautogui.position()
print(f"鼠标现在在 ({x}, {y})")

跑一下这段代码,你就能看到自己的屏幕尺寸和鼠标坐标了。这两个信息很重要,后面写自动化脚本时经常要用。

让鼠标听你指挥

鼠标操作是PyAutoGUI的基本功。移动、点击、拖拽、滚动,全都能搞定:

importpyautogui
importtime

# 把鼠标移到屏幕中央,花1秒钟慢慢移过去
pyautogui.moveTo(960, 540, duration=1)

# 在当前位置单击
pyautogui.click()

# 双击
pyautogui.doubleClick()

# 右键点击
pyautogui.rightClick()

# 拖拽:从当前位置拖到(100, 100)的地方
pyautogui.dragTo(100, 100, duration=0.5)

![](https://imgs.cheemao.com/images/2026/01/07/6dd776590e78474eb2f2be84aea630fb.jpg)

# 滚动:正数向上滚,负数向下滚
pyautogui.scroll(3)

这里有个小技巧:duration参数能让鼠标”慢悠悠”地移动过去,而不是瞬移。这在某些网站或软件中很有用,因为有些程序会检测鼠标移动速度,瞬移可能会被当成异常行为。


温馨提示:坐标(0, 0)在屏幕左上角,x轴向右增大,y轴向下增大。很多人刚开始会搞反y轴的方向,以为往上是正的——不是的,往下才是。

键盘也能模拟

除了鼠标,键盘操作同样不在话下:

importpyautogui

# 输入一串文字(只支持英文和数字)
pyautogui.write('hello world', interval=0.1)

# 按下单个按键
pyautogui.press('enter')
pyautogui.press('f5')

# 组合键,比如Ctrl+C复制
pyautogui.hotkey('ctrl', 'c')

# Ctrl+V粘贴
pyautogui.hotkey('ctrl', 'v')

# 按住shift再按a,输入大写A
pyautogui.hotkey('shift', 'a')

write()函数有个坑——它不支持中文。想输入中文的话,得换个思路:先把中文复制到剪贴板,再用hotkey('ctrl', 'v')粘贴出来。

importpyautogui
importpyperclip  # 需要额外安装:pip install pyperclip

# 把中文放进剪贴板
pyperclip.copy('你好世界')

# 粘贴出来
pyautogui.hotkey('ctrl', 'v')

这招百试百灵。

截图和找图:真正的杀手锏

前面讲的都是基础操作,PyAutoGUI真正厉害的地方在于图像识别。


你可以截一张按钮的图,让程序在屏幕上找到这个按钮,然后点击它。这意味着你的脚本不用写死坐标了——按钮跑到哪儿,程序就能跟到哪儿。

importpyautogui

# 截个全屏
screenshot = pyautogui.screenshot()
screenshot.save('screen.png')

# 在屏幕上找某个图片的位置
location = pyautogui.locateOnScreen('button.png')

if location:
    print(f"找到了!位置是 {location}")
    # 获取图片中心点坐标
    center = pyautogui.center(location)
    # 点击它
    pyautogui.click(center)
else:
    print("没找到这个图片")

实际用的时候,一般会这么写,更简洁:

importpyautogui

# 找到图片中心并点击,找不到就返回None
pos = pyautogui.locateCenterOnScreen('button.png', confidence=0.9)

if pos:
    pyautogui.click(pos)

这里的confidence参数是匹配精度,0.9表示90%相似就算匹配成功。用这个参数需要先装OpenCV:pip install opencv-python。


温馨提示:截图时要注意屏幕缩放比例。如果你的Windows系统设置了125%或150%的缩放,截出来的图可能对不上。最好把缩放调成100%再截图,或者直接在目标机器上截。

安全机制:别让脚本失控

PyAutoGUI有个保命设计叫Fail-Safe。默认开启的情况下,只要你把鼠标甩到屏幕左上角(0, 0)的位置,程序就会立刻抛出异常并停止。


这个功能太重要了。想象一下,你的脚本出了bug,疯狂乱点,你却关不掉它——那场面简直是灾难。有了Fail-Safe,甩一下鼠标就能紧急刹车。

importpyautogui

# 确认Fail-Safe是开着的(默认就是True)
print(pyautogui.FAILSAFE)  # True

![](https://imgs.cheemao.com/images/2026/01/07/505a1014e16243abbc9c9b9389bc6fc2.jpg)

# 千万别这么干,除非你知道自己在做什么
# pyautogui.FAILSAFE = False

另外一个好习惯是在脚本开头加点延迟,给自己留个反应时间:

importpyautogui
importtime

# 等3秒再开始,方便你切换到目标窗口
time.sleep(3)

# 后面是你的自动化代码...

一个实战小例子

来个完整的例子,自动打开记事本并输入一段文字:

importpyautogui
importtime

# 等待3秒
time.sleep(3)

# 按Win键打开开始菜单
pyautogui.press('win')
time.sleep(0.5)

# 输入notepad
pyautogui.write('notepad', interval=0.05)
time.sleep(0.3)

# 回车打开
pyautogui.press('enter')
time.sleep(1)

# 输入内容(用剪贴板方式输入中文)
importpyperclip
pyperclip.copy('PyAutoGUI真好用!')
pyautogui.hotkey('ctrl', 'v')

这段代码在Windows上能跑通。你会看到电脑自己打开了记事本,还输入了一行中文。挺有意思的对吧?


PyAutoGUI的本质是”像素级”的自动化,它不懂程序内部的逻辑,只会傻乎乎地找图、点击、输入。这既是它的优点——什么软件都能对付,也是它的缺点——界面稍微变一下就可能翻车。拿它来处理日常的重复性小任务没问题,但别指望它能搞定那些需要高稳定性的生产环境任务。选对工具,才能事半功倍。

最新文章

随机文章