PyAutoGUI:让你的Python自动化操作电脑,解放双手!

作者:憶逍遥
链接:
https://zhuanlan.zhihu.com/p/1886208522875819057

来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

PyAutoGUI,你就可以让Python帮你"搬砖",解放双手,干点儿更有意思的事情!

一、PyAutoGUI是什么?

PyAutoGUI是一个Python库,能够让Python控制鼠标和键盘,实现GUI自动化。它可以:

总之,PyAutoGUI可以模拟人类在电脑上的各种操作,让你的Python程序成为一个"电脑操作员"。

二、安装PyAutoGUI

安装超简单,只需一行命令:

pip install pyautogui

安装完成后,我们来测试一下是否安装成功:

import pyautogui
print(pyautogui.position())  # 显示当前鼠标位置

运行后,你会看到当前鼠标指针的坐标位置,说明安装成功!

三、基础操作:控制鼠标

1. 获取屏幕大小

在控制鼠标之前,我们先了解一下屏幕大小:

import pyautogui

# 获取屏幕的宽度和高度
screen_width, screen_height = pyautogui.size()
print(f"屏幕宽度: {screen_width}, 屏幕高度: {screen_height}")

2. 移动鼠标

我们可以将鼠标移动到屏幕的特定位置:

import pyautogui
import time

# 移动鼠标到坐标(100, 100)
pyautogui.moveTo(100, 100, duration=1)  # duration是移动所需时间(秒)

# 从当前位置相对移动
pyautogui.move(100, 0, duration=1)  # 向右移动100像素

3. 鼠标点击

点击操作也很简单:

import pyautogui
import time

# 先移动再点击
pyautogui.moveTo(100, 100, duration=1)
pyautogui.click()  # 在当前位置左键单击

# 也可以直接在指定位置点击
pyautogui.click(x=200, y=200)  # 在(200, 200)处左键单击

# 右键点击
pyautogui.rightClick(x=300, y=300)

# 双击
pyautogui.doubleClick(x=400, y=400)

4. 拖拽操作

有时我们需要拖动一些东西:

import pyautogui
import time

# 从(100, 100)拖拽到(300, 300)
pyautogui.dragTo(300, 300, duration=1, button='left')

# 从当前位置相对拖拽
pyautogui.drag(100, 0, duration=1, button='left')  # 向右拖拽100像素

5. 滚动鼠标滚轮

import pyautogui
import time

# 向上滚动10个单位
pyautogui.scroll(10)

# 向下滚动10个单位
pyautogui.scroll(-10)

四、键盘操作

PyAutoGUI不仅能控制鼠标,还能模拟键盘输入:

1. 输入文字

import pyautogui
import time

# 点击一个文本框
pyautogui.click(x=100, y=100)
time.sleep(0.5)  # 等待点击生效

# 输入文字
pyautogui.write('Hello, PyAutoGUI!')

# 可以控制输入速度
pyautogui.write('这是慢速输入', interval=0.2)  # 每个字符间隔0.2秒

2. 特殊按键

对于Shift、Ctrl、Alt等特殊按键,可以这样使用:

import pyautogui
import time

# 按下并释放一个键
pyautogui.press('enter')

# 组合键
pyautogui.hotkey('ctrl', 'c')  # 复制
pyautogui.hotkey('ctrl', 'v')  # 粘贴

# 按下不释放
pyautogui.keyDown('shift')
pyautogui.press('4')  # 输入$
pyautogui.keyUp('shift')

PyAutoGUI支持的特殊按键名称包括:

五、屏幕截图和图像识别

PyAutoGUI的高级功能是可以截图和查找屏幕上的图像位置:

1. 屏幕截图

import pyautogui

# 对整个屏幕进行截图
screenshot = pyautogui.screenshot()
screenshot.save('我的屏幕截图.png')

# 对指定区域截图
region_screenshot = pyautogui.screenshot(region=(0, 0, 300, 400))  # 左上角300x400的区域
region_screenshot.save('区域截图.png')

2. 图像定位

这个功能非常有用,可以找到屏幕上特定图像的位置:

import pyautogui

# 查找屏幕上的图像位置
try:
    position = pyautogui.locateOnScreen('目标图片.png')
    print(f"找到图片,位置: {position}")
    
    # 获取图像的中心点
    center = pyautogui.center(position)
    print(f"图片中心点: {center}")
    
    # 点击图像中心
    pyautogui.click(center)
except:
    print("未找到指定图片")

图像定位在自动化测试中特别有用,比如自动点击某个按钮、识别特定的界面元素等。

六、安全机制

PyAutoGUI有一个安全机制,当你把鼠标快速移动到屏幕的左上角时,程序会暂停(引发异常)。这个功能是为了防止程序失控,让你有机会终止程序。

如果你不需要这个功能,可以关闭它:

import pyautogui

# 关闭故障保护
pyautogui.FAILSAFE = False

但建议保留这个功能,以防万一。

七、小技巧

1. 添加暂停

自动化操作最好添加适当的暂停,让程序有时间反应:

import pyautogui
import time

# 全局暂停设置
pyautogui.PAUSE = 0.5  # 每次操作后暂停0.5秒

# 或者使用time.sleep
pyautogui.click()
time.sleep(1)  # 等待1秒
pyautogui.press('enter')

2. 获取鼠标位置

在编写脚本时,我们经常需要知道要点击的位置坐标,这个小工具很有用:

import pyautogui
import time

print("请将鼠标移到目标位置,5秒后记录坐标")
for i in range(5, 0, -1):
    print(i)
    time.sleep(1)

x, y = pyautogui.position()
print(f"当前鼠标位置:x={x}, y={y}")

3. 消息框

PyAutoGUI还提供了简单的消息框功能:

import pyautogui

# 显示一个警告框
pyautogui.alert(text='操作已完成', title='提示', button='OK')

# 确认框
response = pyautogui.confirm(text='是否继续?', title='确认', buttons=['是', '否', '取消'])
print(f"用户选择了:{response}")

# 输入框
name = pyautogui.prompt(text='请输入你的名字', title='输入', default='')
print(f"你好,{name}")

# 密码输入框
password = pyautogui.password(text='请输入密码', title='密码', default='', mask='*')

PyAutoGUI是一个功能强大的Python自动化库,可以帮助你:

  1. 自动化重复性操作
  2. 创建简单的自动化测试
  3. 编写游戏机器人(虽然有些游戏不允许)
  4. 自动填写表格
  5. 模拟用户操作

是不是感觉学会了这个,工作效率能提高一大截?

展开阅读全文

更新时间:2025-05-01

标签:科技   双手   操作   电脑   位置   屏幕   截图   操作   图像   功能   坐标   当前位置   程序   按键  

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020- All Rights Reserved. Powered By 71396.com 闽ICP备11008920号
闽公网安备35020302034903号

Top