最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python使用PyAutoGUI實(shí)現(xiàn)桌面自動(dòng)化功能

 更新時(shí)間:2025年07月22日 10:59:41   作者:帶娃的IT創(chuàng)業(yè)者  
PyAutoGUI 是一個(gè)跨平臺(tái)的桌面自動(dòng)化工具,能夠模擬鼠標(biāo)點(diǎn)擊、鍵盤(pán)輸入、屏幕截圖與圖像識(shí)別,適用于重復(fù)性桌面任務(wù),本集通過(guò)代碼+截圖+輸出日志的實(shí)戰(zhàn)形式,帶你掌握從基礎(chǔ)操作到復(fù)雜任務(wù)的全流程自動(dòng)化,需要的朋友可以參考下

摘要

PyAutoGUI 是一個(gè)跨平臺(tái)的桌面自動(dòng)化工具,能夠模擬鼠標(biāo)點(diǎn)擊、鍵盤(pán)輸入、屏幕截圖與圖像識(shí)別,適用于重復(fù)性桌面任務(wù)(如表單填寫(xiě)、游戲操作、批量文件處理)。本集通過(guò)代碼+截圖+輸出日志的實(shí)戰(zhàn)形式,帶你掌握從基礎(chǔ)操作到復(fù)雜任務(wù)的全流程自動(dòng)化。

核心概念與代碼實(shí)戰(zhàn)

1. 基礎(chǔ)操作:鼠標(biāo)與鍵盤(pán)控制

安裝命令

pip install pyautogui  

鼠標(biāo)控制

import pyautogui  
import time  

# 移動(dòng)鼠標(biāo)到坐標(biāo) (500, 300)  
pyautogui.moveTo(500, 300, duration=1)  

# 模擬點(diǎn)擊(左鍵單擊)  
pyautogui.click()  

# 滾輪滾動(dòng)(向上滾動(dòng) 200 單位)  
pyautogui.scroll(200)  

鍵盤(pán)輸入

# 輸入文本  
pyautogui.write("Hello, PyAutoGUI!", interval=0.1)  

# 組合鍵操作(Ctrl+C)  
pyautogui.hotkey("ctrl", "c")  

效果驗(yàn)證

print(f"當(dāng)前鼠標(biāo)位置:{pyautogui.position()}")  # 輸出實(shí)時(shí)坐標(biāo)  

2. 截屏與圖像識(shí)別

場(chǎng)景:通過(guò)屏幕上的圖標(biāo)定位并點(diǎn)擊按鈕。

# 截取屏幕并保存  
screenshot = pyautogui.screenshot()  
screenshot.save("screenshot.png")  

# 查找圖標(biāo)位置(需提前保存圖標(biāo)圖片)  
button_location = pyautogui.locateOnScreen("submit_button.png")  
if button_location:  
    # 計(jì)算圖標(biāo)中心點(diǎn)并點(diǎn)擊  
    button_center = pyautogui.center(button_location)  
    pyautogui.click(button_center)  
else:  
    print("圖標(biāo)未找到!")  

輸出示例

圖標(biāo)位置:Box(left=200, top=150, width=50, height=30)  

3. 腳本調(diào)試與異常處理

問(wèn)題場(chǎng)景:圖像識(shí)別失敗導(dǎo)致腳本崩潰。

解決方案

try:  
    # 設(shè)置超時(shí)時(shí)間為 5 秒  
    button_location = pyautogui.locateOnScreen(  
        "save_icon.png",  
        confidence=0.8,  # 允許 80% 相似度  
        grayscale=True   # 灰度匹配提升速度  
    )  
    if not button_location:  
        raise Exception("圖標(biāo)匹配失?。?)  
except Exception as e:  
    print(f"錯(cuò)誤:{e}")  
    # 回退到手動(dòng)輸入坐標(biāo)  
    pyautogui.click(100, 200)  

調(diào)試技巧

  • 使用 pyautogui.PAUSE = 1 控制操作間隔
  • 啟用 pyautogui.FAILSAFE = True(鼠標(biāo)移至左上角強(qiáng)制停止腳本)

實(shí)戰(zhàn)案例

案例 1:自動(dòng)化填寫(xiě)表單

場(chǎng)景:批量填寫(xiě) Excel 表格中的數(shù)據(jù)到某個(gè)桌面應(yīng)用。

import pyautogui  
import pandas as pd  

# 讀取 Excel 數(shù)據(jù)  
data = pd.read_excel("data.xlsx")  

for index, row in data.iterrows():  
    # 定位輸入框并填寫(xiě)  
    pyautogui.click(300, 400)  # 姓名輸入框  
    pyautogui.write(row["姓名"])  
    pyautogui.press("tab")      # 跳轉(zhuǎn)到年齡輸入框  
    pyautogui.write(str(row["年齡"]))  
    # 提交表單  
    pyautogui.press("enter")  
    time.sleep(1)  # 等待頁(yè)面刷新  

輸出示例

已提交姓名:張三,年齡:25  
已提交姓名:李四,年齡:30  

案例 2:模擬游戲中的簡(jiǎn)單操作

場(chǎng)景:自動(dòng)玩“鍵盤(pán)反應(yīng)速度”游戲。

# 監(jiān)聽(tīng)屏幕特定區(qū)域的變化  
game_region = (400, 200, 200, 100)  

while True:  
    # 截取游戲區(qū)域  
    region_screenshot = pyautogui.screenshot(region=game_region)  
    # 檢測(cè)紅色方塊出現(xiàn)  
    if pyautogui.pixelMatchesColor(500, 250, (255, 0, 0)):  
        pyautogui.press("space")  # 按空格鍵得分  

案例 3:批量重命名文件

場(chǎng)景:將文件夾中的 100 張圖片按規(guī)則重命名。

import os  
import pyautogui  

# 打開(kāi)文件資源管理器  
os.system("explorer.exe .\\images")  
time.sleep(2)  

# 依次重命名文件  
for i in range(1, 101):  
    pyautogui.hotkey("ctrl", "a")    # 全選文件  
    pyautogui.press("f2")            # 重命名  
    pyautogui.write(f"photo_{i:03d}")  # 格式化名稱(chēng)(photo_001)  
    pyautogui.press("enter")  
    time.sleep(0.5)  

擴(kuò)展思考

1. PyAutoGUI 與其他工具的結(jié)合

與 Selenium 結(jié)合

# 用 Selenium 處理網(wǎng)頁(yè),PyAutoGUI 處理下載彈窗  
driver.get("https://example.com/download")  
pyautogui.press("enter")  # 自動(dòng)確認(rèn)下載對(duì)話框  

打包為可執(zhí)行文件

pip install pyinstaller  
pyinstaller --onefile your_script.py  

2. 安全性和法律合規(guī)性

  • 風(fēng)險(xiǎn)提示
    • 避免自動(dòng)化操作金融交易、社交賬號(hào)等敏感場(chǎng)景
    • 部分軟件(如游戲)可能禁止自動(dòng)化腳本
  • 合規(guī)建議
    • 僅用于個(gè)人效率提升或授權(quán)場(chǎng)景
    • 遵守《計(jì)算機(jī)軟件保護(hù)條例》和平臺(tái)規(guī)則

總結(jié)

通過(guò)本實(shí)戰(zhàn),你已掌握:

  1. PyAutoGUI 的核心操作(鼠標(biāo)、鍵盤(pán)、圖像識(shí)別)
  2. 復(fù)雜任務(wù)的異常處理與調(diào)試技巧
  3. 從表單填寫(xiě)到游戲模擬的完整案例
  4. 自動(dòng)化腳本的法律邊界與安全實(shí)踐

以上就是Python使用PyAutoGUI實(shí)現(xiàn)桌面自動(dòng)化功能的詳細(xì)內(nèi)容,更多關(guān)于Python PyAutoGUI桌面自動(dòng)化的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 基于python實(shí)現(xiàn)PDF分頁(yè)和管理工具開(kāi)發(fā)詳解

    基于python實(shí)現(xiàn)PDF分頁(yè)和管理工具開(kāi)發(fā)詳解

    本文將詳細(xì)分析一個(gè)使用wxPython開(kāi)發(fā)的PDF分離和管理工具,該工具能夠?qū)DF文件按頁(yè)分離,提供預(yù)覽功能,并支持別名管理系統(tǒng),感興趣的小伙伴可以了解下
    2025-09-09
  • Python?Pyinstaller庫(kù)安裝步驟以及使用方法

    Python?Pyinstaller庫(kù)安裝步驟以及使用方法

    pyinstaller是一個(gè)非常簡(jiǎn)單的打包python的py文件的庫(kù),下面這篇文章主要給大家介紹了關(guān)于Python?Pyinstaller庫(kù)安裝步驟以及使用方法的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2022-08-08
  • Python實(shí)現(xiàn)自動(dòng)化網(wǎng)頁(yè)操作步驟

    Python實(shí)現(xiàn)自動(dòng)化網(wǎng)頁(yè)操作步驟

    這篇文章主要介紹Python如何實(shí)現(xiàn)自動(dòng)化網(wǎng)頁(yè)操作,文中有詳細(xì)的流程步驟和代碼示例,對(duì)我們的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2023-06-06
  • 教你用python實(shí)現(xiàn)一個(gè)加密的文字處理器

    教你用python實(shí)現(xiàn)一個(gè)加密的文字處理器

    生活中有時(shí)候我們需要對(duì)一些重要的文件進(jìn)行加密,下面這篇文章主要給大家介紹了關(guān)于如何用python實(shí)現(xiàn)一個(gè)加密文字處理器的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-06-06
  • SpringMVC和SpringBoot接收參數(shù)的幾種方式詳解

    SpringMVC和SpringBoot接收參數(shù)的幾種方式詳解

    這篇文章主要介紹了SpringMVC和SpringBoot接收參數(shù)的幾種方式詳解,Spring是分層的JavaSE/EE應(yīng)用輕量級(jí)開(kāi)源框架,以IoC和AOP為內(nèi)核,提供了展現(xiàn)層 Spring MVC和持久層Spring JDBC以及業(yè)務(wù)層事務(wù)管理等眾多的企業(yè)級(jí)應(yīng)用技術(shù),需要的朋友可以參考下
    2023-07-07
  • Flask框架踩坑之a(chǎn)jax跨域請(qǐng)求實(shí)現(xiàn)

    Flask框架踩坑之a(chǎn)jax跨域請(qǐng)求實(shí)現(xiàn)

    這篇文章主要介紹了Flask框架踩坑之a(chǎn)jax跨域請(qǐng)求實(shí)現(xiàn),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-02-02
  • Python對(duì)列表進(jìn)行排序的五種方法示例代碼

    Python對(duì)列表進(jìn)行排序的五種方法示例代碼

    這篇文章主要給大家介紹了關(guān)于Python對(duì)列表進(jìn)行排序的五種方法,分別是sort()、sorted()、lambda表達(dá)式、reverse()和自定義排序算法,這些方法各有特點(diǎn),文中給出了詳細(xì)的代碼示例,需要的朋友可以參考下
    2025-05-05
  • Python基礎(chǔ)實(shí)戰(zhàn)總結(jié)

    Python基礎(chǔ)實(shí)戰(zhàn)總結(jié)

    今天要給大家介紹的是Python基礎(chǔ)實(shí)戰(zhàn),本文主要以舉例說(shuō)明講解:?jiǎn)栴}的關(guān)鍵點(diǎn)就是在于構(gòu)造姓名,學(xué)號(hào)和成績(jī),之后以字典的形式進(jìn)行寫(xiě)入文件。這里準(zhǔn)備兩個(gè)列表,一個(gè)姓,一個(gè)名,之后使用random庫(kù)進(jìn)行隨機(jī)字符串拼接,得到姓名,需要的朋友可以參考一下
    2021-10-10
  • Python numpy二維數(shù)組如何刪除指定行和列

    Python numpy二維數(shù)組如何刪除指定行和列

    本文展示了如何對(duì)數(shù)組進(jìn)行行列刪除操作,包括刪除單行、單列、多行和多列的方法,通過(guò)具體的運(yùn)行結(jié)果展示,讀者可以清晰地了解到如何在不同情況下進(jìn)行數(shù)據(jù)處理,文章內(nèi)容實(shí)用,適合需要進(jìn)行數(shù)據(jù)處理的讀者參考學(xué)習(xí)
    2024-09-09
  • 簡(jiǎn)單的Python動(dòng)態(tài)可視化神器,編程小白也能上手

    簡(jiǎn)單的Python動(dòng)態(tài)可視化神器,編程小白也能上手

    這篇文章就來(lái)介紹簡(jiǎn)單的Python動(dòng)態(tài)可視化神器,最近發(fā)現(xiàn)了一個(gè)寶藏動(dòng)態(tài)可視化庫(kù),非常簡(jiǎn)單,即使是小白也能輕松上手。這個(gè)庫(kù)就是motionchart,它能夠用 pandas 的 dataframe 數(shù)據(jù)直接創(chuàng)建交互式的動(dòng)態(tài)圖表,下面來(lái)簡(jiǎn)單看一下如何使用。

    2021-10-10

最新評(píng)論

北流市| 宕昌县| 武乡县| 永清县| 天台县| 罗平县| 疏勒县| 西丰县| 葫芦岛市| 交口县| 顺昌县| 西吉县| 普宁市| 田阳县| 清苑县| 太保市| 阳高县| 沅江市| 泗洪县| 谢通门县| 弋阳县| 新源县| 华宁县| 乌审旗| 曲周县| 雅江县| 万盛区| 三都| 乌海市| 寿光市| 巴林右旗| 囊谦县| 福海县| 松阳县| 罗田县| 邢台市| 延吉市| 夏津县| 漳浦县| 汕头市| 阿克苏市|