首页 热门资讯文章正文

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

热门资讯 2025年07月24日 03:15 1 admin
PyAutoGUI:让你的Python自动化操作电脑,解放双手!

作者:憶逍遥
链接:https://zhuanlan.zhihu.com/p/1886208522875819057
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

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

一、PyAutoGUI是什么?

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

  • 控制鼠标移动
  • 执行点击、拖拽操作
  • 滚动鼠标滚轮
  • 输入文字
  • 按下和释放按键
  • 截取屏幕截图
  • 定位图像位置

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

二、安装PyAutoGUI

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

pip install pyautogui

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

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

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

三、基础操作:控制鼠标

1. 获取屏幕大小

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

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

2. 移动鼠标

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

import pyautoguiimport time# 移动鼠标到坐标(100, 100)pyautogui.moveTo(100, 100, duration=1)  # duration是移动所需时间(秒)# 从当前位置相对移动pyautogui.move(100, 0, duration=1)  # 向右移动100像素

3. 鼠标点击

点击操作也很简单:

import pyautoguiimport 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 pyautoguiimport time# 从(100, 100)拖拽到(300, 300)pyautogui.dragTo(300, 300, duration=1, button='left')# 从当前位置相对拖拽pyautogui.drag(100, 0, duration=1, button='left')  # 向右拖拽100像素

5. 滚动鼠标滚轮

import pyautoguiimport time# 向上滚动10个单位pyautogui.scroll(10)# 向下滚动10个单位pyautogui.scroll(-10)

四、键盘操作

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

1. 输入文字

import pyautoguiimport 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 pyautoguiimport time# 按下并释放一个键pyautogui.press('enter')# 组合键pyautogui.hotkey('ctrl', 'c')  # 复制pyautogui.hotkey('ctrl', 'v')  # 粘贴# 按下不释放pyautogui.keyDown('shift')pyautogui.press('4')  # 输入$pyautogui.keyUp('shift')

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

  • enter(回车)
  • esc(退出)
  • tab(制表符)
  • alt, ctrl, shift(组合键)
  • up, down, left, right(方向键)
  • f1到f12(功能键)
  • 等等……

五、屏幕截图和图像识别

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 pyautoguiimport time# 全局暂停设置pyautogui.PAUSE = 0.5  # 每次操作后暂停0.5秒# 或者使用time.sleeppyautogui.click()time.sleep(1)  # 等待1秒pyautogui.press('enter')

2. 获取鼠标位置

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

import pyautoguiimport timeprint("请将鼠标移到目标位置,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. 模拟用户操作

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

发表评论

泰日号Copyright Your WebSite.Some Rights Reserved. 网站地图 备案号:川ICP备66666666号 Z-BlogPHP强力驱动