PyAutoGUI 是 Python 的自动化控制库,可模拟鼠标、键盘操作,支持 Windows/macOS/Linux,安装前需确保已安装 Python(推荐 3.6+)和 pip。

v基础功能

一、PyAutoGUI 安装

PyAutoGUI 是 Python 的自动化控制库,可模拟鼠标、键盘操作,支持 Windows/macOS/Linux,安装前需确保已安装 Python(推荐 3.6+)和 pip。

1. 基础安装(通用)

打开命令行(CMD/Terminal),执行:
 
# 基础安装(Windows/macOS/Linux 通用)
pip install pyautogui

# 若系统有多个Python版本,用pip3
pip3 install pyautogui

# 国内源加速(推荐)
pip install pyautogui -i https://pypi.tuna.tsinghua.edu.cn/simple

2. 不同系统的额外依赖

  • Windows:无需额外依赖,安装后直接使用。
  • macOS:需安装 PyObjC(系统交互依赖),执行:
     
    # 先装核心依赖,再装完整PyObjC
    pip3 install pyobjc-core
    pip3 install pyobjc
    此外,macOS 需给终端 / IDE 开启「辅助功能」权限(系统设置 → 隐私与安全性 → 辅助功能),否则无法模拟操作。
  • Linux:需安装截图和 X11 依赖,以 Debian/Ubuntu 为例:
    sudo apt-get install scrot python3-xlib

二、PyAutoGUI 核心使用

1. 基础配置(必做)

import pyautogui

# 安全设置:鼠标移到屏幕左上角(0,0)触发异常,终止程序(防止失控)
pyautogui.FAILSAFE = True
# 每次操作后暂停1秒(防止操作过快,便于调试)
pyautogui.PAUSE = 1

2. 屏幕相关操作

(1)获取屏幕尺寸
# 获取屏幕宽高(返回元组:(宽度, 高度))
screen_width, screen_height = pyautogui.size()
print(f"屏幕尺寸:{screen_width}x{screen_height}")
(2)截图操作
# 截取整个屏幕,返回PIL图像对象
screenshot = pyautogui.screenshot()
# 保存截图到本地
screenshot.save("full_screen.png")

# 截取指定区域(x,y 起始坐标,width,height 宽高)
region_screenshot = pyautogui.screenshot(region=(100, 100, 300, 200))
region_screenshot.save("region_screen.png")

3. 鼠标操作

PyAutoGUI 的坐标系统:屏幕左上角为 (0, 0),向右 x 递增,向下 y 递增。
(1)移动鼠标
# 绝对移动:移到屏幕(500, 500)位置,耗时2秒(平滑移动)
pyautogui.moveTo(500, 500, duration=2)

# 相对移动:从当前位置向右移100像素,向下移50像素,耗时1秒
pyautogui.moveRel(100, 50, duration=1)
(2)点击鼠标
# 左键单击(默认):在(500, 500)位置点击
pyautogui.click(500, 500)

# 右键单击
pyautogui.rightClick(500, 500)

# 双击左键
pyautogui.doubleClick(500, 500)

# 左键按住再释放(拖拽基础)
pyautogui.mouseDown(500, 500)  # 按住
pyautogui.mouseUp(800, 800)    # 释放(移到800,800)
(3)拖拽鼠标
# 从(100,100)拖拽到(400,400),耗时2秒
pyautogui.dragTo(400, 400, duration=2)

# 相对拖拽:从当前位置向右拖200像素,向上拖100像素
pyautogui.dragRel(200, -100, duration=1)
(4)滚动鼠标
# 滚动鼠标滚轮(正数向上,负数向下),在(500,500)位置滚动
pyautogui.scroll(10, x=500, y=500)  # 向上滚10格
pyautogui.scroll(-10, x=500, y=500) # 向下滚10格

4. 键盘操作

(1)输入文字
# 直接输入文字(支持英文,中文需确保输入法匹配)
pyautogui.typewrite("Hello PyAutoGUI!")

# 逐字符输入,间隔0.2秒(模拟人工输入)
pyautogui.typewrite("Hello World", interval=0.2)
(2)单键操作
# 按下并释放单个按键(如回车、空格)
pyautogui.press("enter")  # 按回车键
pyautogui.press("space")  # 按空格键
pyautogui.press("esc")    # 按ESC键

# 按住按键 → 释放按键(组合键基础)
pyautogui.keyDown("shift")  # 按住shift
pyautogui.keyUp("shift")    # 释放shift
(3)组合键操作
# 快捷键:Ctrl+C(复制)
pyautogui.hotkey("ctrl", "c")

# 快捷键:Ctrl+V(粘贴)
pyautogui.hotkey("ctrl", "v")

# 快捷键:Alt+F4(关闭窗口,Windows)
pyautogui.hotkey("alt", "f4")

5. 图像定位(精准操作)

通过截图匹配屏幕上的目标位置,返回坐标:
 
# 定位屏幕上的目标图片(需提前保存目标截图,如button.png)
# 返回值:(x, y, 宽度, 高度),若未找到返回None
target_pos = pyautogui.locateOnScreen("button.png")

if target_pos:
    # 获取目标图片的中心坐标
    center_x, center_y = pyautogui.center(target_pos)
    # 点击目标中心
    pyautogui.click(center_x, center_y)
else:
    print("未找到目标图片")

# 可选参数:提高匹配容错率(grayscale=True 灰度匹配,confidence=0.8 置信度)
target_pos = pyautogui.locateOnScreen("button.png", grayscale=True, confidence=0.8)
注意:图像定位需确保截图与屏幕显示一致(分辨率、缩放比例),否则匹配失败。

三、完整示例:自动打开记事本并输入文字

import pyautogui
import time

# 基础配置
pyautogui.FAILSAFE = True
pyautogui.PAUSE = 1

# 1. 打开Windows开始菜单(按Win键)
pyautogui.press("win")

# 2. 输入“记事本”并回车
pyautogui.typewrite("记事本")
pyautogui.press("enter")

# 3. 等待记事本打开(额外延时,确保窗口加载)
time.sleep(2)

# 4. 在记事本中输入文字
pyautogui.typewrite("Hello PyAutoGUI!\n这是自动化输入的内容~", interval=0.1)

# 5. 保存文件(Ctrl+S)
pyautogui.hotkey("ctrl", "s")

# 6. 输入文件名并保存
pyautogui.typewrite("自动化测试.txt")
pyautogui.press("enter")

四、注意事项

  1. 防止失控:开启 FAILSAFE = True,操作失控时快速将鼠标移到屏幕左上角终止程序。
  2. 权限问题:macOS/Linux 需开启对应权限,否则无法模拟操作。
  3. 中文输入:PyAutoGUI 直接 typewrite 中文可能乱码,建议先切换到中文输入法,或使用剪贴板 + 粘贴(pyperclip 库配合 hotkey("ctrl","v"))。
  4. 调试技巧:先通过 pyautogui.position() 打印当前鼠标坐标,确定目标位置后再写代码。

五、常见问题

  • 安装失败:升级 pip(pip install --upgrade pip),或检查 Python 环境是否正常。
  • 操作无响应:检查系统权限(macOS/Linux)、坐标是否正确、目标窗口是否在前台。
  • 图像定位失败:确保截图清晰、分辨率匹配,添加 confidence 参数降低匹配精度。

vauto input

初级
import pyautogui
import time
import random  # 导入random模块用于生成随机延迟

# 您的代码内容,用三引号字符串保存
code_to_type = """

原文地址: https://www.cveoy.top/t/topic/qHie 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录