深夜提醒

现在是深夜,建议您注意休息,不要熬夜哦~

🏮 🏮 🏮

新年快乐

祝君万事如意心想事成!

2024 桐庐半程马拉松
00:00:00
时间
0.00
距离(公里)
--:--
配速
--
步频
--
心率 (bpm)
--
配速
步频
|
share-image
ESC

解放双手!Python GUI 自动化工具 PyAutoGUI 详解

你是否遇到过这种需求:每天需要打开某个软件,点击固定的几个按钮,输入一些数据,然后导出报表?这些重复枯燥的工作,其实完全可以交给 Python 来做。

PyAutoGUI 就是这样一个跨平台的 GUI 自动化库,它可以模拟鼠标移动、点击、拖拽以及键盘输入。无论是在 Windows、macOS 还是 Linux 上,它都能帮你“接管”电脑。

官方文档:https://pyautogui.readthedocs.io/en/latest/

安装

pip install pyautogui

注意:在 Linux 上可能需要安装额外的依赖(如 scrot, python3-tk, python3-dev)。

安全特性:Fail-Safe

在开始之前,必须介绍 PyAutoGUI 的“紧急刹车”机制。如果程序失控了(比如鼠标乱飞),你只需将鼠标猛地移动到屏幕的四个角落之一,PyAutoGUI 就会自动抛出异常并停止运行。

import pyautogui
pyautogui.FAILSAFE = True # 默认为 True,强烈建议保持开启

常用功能

1. 鼠标操作

# 获取屏幕分辨率
width, height = pyautogui.size()

# 移动鼠标到 (100, 100) 位置,耗时 1 秒
pyautogui.moveTo(100, 100, duration=1)

# 点击鼠标左键
pyautogui.click()

# 双击
pyautogui.doubleClick()

# 拖拽
pyautogui.dragTo(200, 200, button='left')

2. 键盘操作

# 输入字符串 (不支持中文,中文需用剪贴板粘贴法)
pyautogui.write('Hello, Python!', interval=0.1)

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

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

3. 屏幕识别(简单 OCR)

PyAutoGUI 可以根据图片在屏幕上找位置,这对于无法通过控件 ID 定位的传统软件非常有用。

# 在屏幕上查找 'button.png' 的位置
location = pyautogui.locateOnScreen('button.png')

if location:
# 获取中心点并点击
x, y = pyautogui.center(location)
pyautogui.click(x, y)
else:
print("未找到目标图片")

应用场景

  • 自动化填表:从 Excel 读取数据录入到 ERP 系统。
  • 游戏脚本:简单的挂机、收菜操作。
  • GUI 测试:测试桌面软件的 UI 响应。

PyAutoGUI 虽然简单粗暴,但非常实用。配合 time.sleep 控制节奏,你可以用它完成几乎所有人类能做的电脑操作。

文章作者:阿文
文章链接: https://www.awen.me/post/56e89b4e.html
版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 阿文的博客
本文于 2021-11-05 16:45 发布,已超过半年(1590天),请注意甄别内容是否已过期。

评论

0 条评论
😀😃😄 😁😅😂 🤣😊😇 🙂🙃😉 😌😍🥰 😘😗😙 😚😋😛 😝😜🤪 🤨🧐🤓 😎🥸🤩 🥳😏😒 😞😔😟 😕🙁☹️ 😣😖😫 😩🥺😢 😭😤😠 😡🤬🤯 😳🥵🥶 😱😨😰 😥😓🤗 🤔🤭🤫 🤥😶😐 😑😬🙄 😯😦😧 😮😲🥱 😴🤤😪 😵🤐🥴 🤢🤮🤧 😷🤒🤕 🤑🤠😈 👿👹👺 🤡💩👻 💀☠️👽 👾🤖🎃 😺😸😹 😻😼😽 🙀😿😾 👍👎👏 🙌👐🤲 🤝🤜🤛 ✌️🤞🤟 🤘👌🤏 👈👉👆 👇☝️ 🤚🖐️🖖 👋🤙💪 🦾🖕✍️ 🙏💅🤳 💯💢💥 💫💦💨 🕳️💣💬 👁️‍🗨️🗨️🗯️ 💭💤❤️ 🧡💛💚 💙💜🖤 🤍🤎💔 ❣️💕💞 💓💗💖 💘💝💟 ☮️✝️☪️ 🕉️☸️✡️ 🔯🕎☯️ ☦️🛐 🆔⚛️🉑 ☢️☣️📴 📳🈶🈚 🈸🈺🈷️ ✴️🆚💮 🉐㊙️㊗️ 🈴🈵🈹 🈲🅰️🅱️ 🆎🆑🅾️ 🆘 🛑📛 🚫💯💢 ♨️🚷🚯 🚳🚱🔞 📵🚭 ‼️⁉️🔅 🔆〽️⚠️ 🚸🔱⚜️ 🔰♻️ 🈯💹❇️ ✳️🌐 💠Ⓜ️🌀 💤🏧🚾 🅿️🈳 🈂🛂🛃 🛄🛅🛗 🚀🛸🚁 🚉🚆🚅 ✈️🛫🛬 🛩️💺🛰️
您的评论由 AI 智能审核,一般1分钟内会展示,若不展示请确认你的评论是否符合社区和法律规范
加载中...

选择联系方式

留言反馈

😀😃😄 😁😅😂 🤣😊😇 🙂🙃😉 😌😍🥰 😘😗😙 😚😋😛 😝😜🤪 🤨🧐🤓 😎🥸🤩 🥳😏😒 😞😔😟 😕🙁☹️ 😣😖😫 😩🥺😢 😭😤😠 😡🤬🤯 😳🥵🥶 😱😨😰 😥😓🤗 🤔🤭🤫 🤥😶😐 😑😬🙄 😯😦😧 😮😲🥱 😴🤤😪 😵🤐🥴 🤢🤮🤧 😷🤒🤕 🤑🤠😈 👿👹👺 🤡💩👻 💀☠️👽 👾🤖🎃 😺😸😹 😻😼😽 🙀😿😾 👍👎👏 🙌👐🤲 🤝🤜🤛 ✌️🤞🤟 🤘👌🤏 👈👉👆 👇☝️ 🤚🖐️🖖 👋🤙💪 🦾🖕✍️ 🙏💅🤳 💯💢💥 💫💦💨 🕳️💣💬 👁️‍🗨️🗨️🗯️ 💭💤❤️ 🧡💛💚 💙💜🖤 🤍🤎💔 ❣️💕💞 💓💗💖 💘💝💟 ☮️✝️☪️ 🕉️☸️✡️ 🔯🕎☯️ ☦️🛐 🆔⚛️🉑 ☢️☣️📴 📳🈶🈚 🈸🈺🈷️ ✴️🆚💮 🉐㊙️㊗️ 🈴🈵🈹 🈲🅰️🅱️ 🆎🆑🅾️ 🆘 🛑📛 🚫💯💢 ♨️🚷🚯 🚳🚱🔞 📵🚭 ‼️⁉️🔅 🔆〽️⚠️ 🚸🔱⚜️ 🔰♻️ 🈯💹❇️ ✳️🌐 💠Ⓜ️🌀 💤🏧🚾 🅿️🈳 🈂🛂🛃 🛄🛅🛗 🚀🛸🚁 🚉🚆🚅 ✈️🛫🛬 🛩️💺🛰️