一、概述
您是否曾经想过在计算机上自动执行某些任务,例如截屏、填写表单、单击按钮等等? 如果您是 Python 用户,您可能会对 PyAutoGUI 感兴趣,这是一个允许您使用代码控制鼠标和键盘的库。 本文将介绍 PyAutoGUI 是什么、它为什么有用以及如何将它用于各种目的。
二、PyAutoGUI 是什么
PyAutoGUI 是一个 Python 库,使您能够通过控制鼠标和键盘来自动执行 GUI(图形用户界面)任务。 它可以模拟用户操作,例如移动光标、单击按钮、键入文本、按键、捕获屏幕截图等。它还可以识别和定位屏幕上的图像,这对于测试或与 GUI 应用程序交互非常有用。
PyAutoGUI 是跨平台的,这意味着它可以在 Windows、macOS 和 Linux 上运行。 它具有简单直观的API(应用程序编程接口)。
PyAutoGUI 的源码地址:https://github.com/asweigart/pyautogui
PyAutoGUI 官方文档:https://pyautogui.readthedocs.io/
您可以通过在终端中运行以下命令,使用 Python 包管理器 pip 安装 PyAutoGUI:
pip install pyautogui
或者从国内清华源安装(速度快):
pip install pyautogui -i https://pypi.tuna.tsinghua.edu.cn/simple
三、使用 PyAutoGUI 执行常见任务
要使用 PyAutoGUI,您需要将其导入 Python 脚本或解释器中。 您还可以使用__version__
属性检查其版本:
import pyautogui print(pyautogui.__version__)
输出:
0.9.54
您可能想要使用 PyAutoGUI 做的第一件事就是获取屏幕的大小和分辨率。 这可以帮助您确定鼠标移动和单击的坐标和边界。 您可以使用 size()
函数获取屏幕宽度和高度的元组(以像素为单位):
sizex, sizey = pyautogui.size() print(sizex, sizey)
输出 (下面的数字是我屏幕的大小):
1920 1080
要将鼠标光标移动到屏幕上的特定位置,可以使用 moveTo()
函数,该函数将 x 和 y 坐标作为参数。 例如,要将光标移动到屏幕中央,可以使用以下代码:
pyautogui.moveTo(sizex/2, sizey/2)
要在当前位置单击鼠标按钮,可以使用 click()
函数,该函数将按钮参数设置为“左”、“中”或“右”。 您还可以指定单击次数以及单击之间的间隔。 例如,要双击左键,可以使用以下代码:
pyautogui.click(button='left', clicks=2, interval=0.5)
要在当前位置键入文本,可以使用 write()
函数,该函数将文本参数作为字符串。 您还可以指定每个字符之间的间隔。 例如,输入“Hello, world!” 以 0.1 秒的间隔,您可以使用以下代码:
pyautogui.write('Hello, world!', interval=0.1)
要按下单个键或组合键,您可以使用 press()
函数,该函数将键参数作为字符串或字符串列表。 您还可以使用 keyDown()
和 keyUp()
函数来按住和释放按键。 例如,要按“Enter”键,您可以使用以下代码:
pyautogui.press('enter')
要捕获屏幕或屏幕某个区域的屏幕截图,您可以使用 screenshot()
函数,该函数返回一个 PIL(Python 图像库)图像对象。 您还可以使用 save()
方法将图像保存到文件中。 例如,要捕获屏幕左上角的屏幕截图并将其保存为“screenshot.png”,您可以使用以下代码:
region = (0, 0, int(sizex/2), int(sizey/2)) image = pyautogui.screenshot(region=region) image.save('screenshot.png')
四、高级功能
PyAutoGUI 还具有一些高级功能和技术,可以使您的自动化任务更加强大和灵活。 这里是其中的一些:
1) 您可以通过 hotkey()
函数使用热键和键盘快捷键,该函数将可变数量的键参数作为字符串。 例如,要将选定的文本复制到剪贴板,可以使用以下代码:
pyautogui.hotkey('ctrl', 'c')
2) 您可以使用 locateOnScreen()
函数在屏幕上定位和识别图像,该函数将图像参数作为文件名或 PIL 图像对象。 它返回找到图像的区域的坐标和大小的元组,如果未找到图像,则返回 None 。 例如,要在屏幕上找到图像“button.png”并单击它,可以使用以下代码:
region = pyautogui.locateOnScreen('button.png') if region is not None: centerx, centery = pyautogui.center(region) pyautogui.click(centerx, centery)
3) 您可以截取全屏屏幕截图并使用 PIL Image 对象的 crop()
方法对其进行裁剪。 例如,要裁剪屏幕的右下四分之一并将其另存为“cropped.png”,您可以使用以下代码:
image = pyautogui.screenshot() cropped = image.crop((sizex/2, sizey/2, sizex, sizey)) cropped.save('cropped.png')
五、示例
下面的示例演示了用 PyAutoGUI 控制鼠标移动到文本框,并模拟输入文本信息,然后控制鼠标移动到“关闭”按钮,并模拟点击“关闭”按钮的自动化流程。
六、结论
本文介绍了 PyAutoGUI 是什么、它为什么有用以及如何将它用于各种目的。PyAutoGUI 对于测试或与 GUI 应用程序交互非常有用,您可以试着发掘更多有趣的应用。
- Python + Diagrams: 用代码输出高档系统架构图
- Python + Pandas : 轻松搞定CSV文件
- Python + Cryptography : 给你的数据加把锁
- 用 Python 制作 ASCII 字符画
- Python 中的浅拷贝和深拷贝
- Python 字典 (Dictionary) 入门
- 从串联到 F-字符串:释放 Python 字符串格式化的力量
- 神奇的 Python 元类 (metaclass) 及其应用
- Python 之禅
- 使用 Python 生成 Lorem lpsum 拉丁文本