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

Python桌面自動(dòng)化框架PyAutoGUI功能詳解

 更新時(shí)間:2026年03月27日 09:32:42   作者:遙遙江上月  
其實(shí)很多時(shí)候一些特定流程化的點(diǎn)點(diǎn)點(diǎn),都是可以讓電腦自己去完成的,這篇文章主要介紹了Python桌面自動(dòng)化框架PyAutoGUI功能的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下

一、PyAutoGUI 核心介紹

PyAutoGUI 是一款跨平臺(tái)(支持 Windows、macOS、Linux)的 Python 桌面自動(dòng)化庫(kù),能夠模擬用戶的鼠標(biāo)移動(dòng)、點(diǎn)擊、滾輪操作鍵盤輸入,還支持屏幕截圖、圖像識(shí)別定位等功能,廣泛用于重復(fù)性桌面操作自動(dòng)化(如表單填寫、軟件操作、批量處理等)。

二、安裝步驟

直接通過(guò) pip 命令安裝,命令簡(jiǎn)潔無(wú)復(fù)雜依賴:

pip install pyautogui

補(bǔ)充:若安裝失?。ㄈ?macOS 需額外依賴),可參考官方文檔適配系統(tǒng)環(huán)境,Windows 系統(tǒng)通??芍苯影惭b成功。

三、核心功能詳解

自動(dòng)獲取當(dāng)前鼠標(biāo)位置:

import pyautogui
import time
try:
    while True:
        x, y = pyautogui.position()    #獲得鼠標(biāo)所在位置
        print(x,y)     #打印當(dāng)前鼠標(biāo)所處位置
        time.sleep(1)
except KeyboardInterrupt:
    print('\nExit.')

(一)鼠標(biāo)操作:模擬用戶鼠標(biāo)行為

PyAutoGUI 提供了完整的鼠標(biāo)模擬接口,核心包括移動(dòng)、點(diǎn)擊、拖拽等,所有操作均基于屏幕坐標(biāo)系統(tǒng)(屏幕左上角為原點(diǎn) (0, 0),向右為 x 軸正方向,向下為 y 軸正方向)。

1. 鼠標(biāo)移動(dòng)

  • 基礎(chǔ)移動(dòng):將鼠標(biāo)從當(dāng)前位置移動(dòng)到指定坐標(biāo) (x, y)
import pyautogui
# duration:移動(dòng)耗時(shí)(秒),可選參數(shù),默認(rèn)瞬間移動(dòng)
pyautogui.moveTo(x=100, y=200, duration=0.5)
  • 相對(duì)移動(dòng):基于當(dāng)前鼠標(biāo)位置,偏移指定像素(dx 為 x 軸偏移,dy 為 y 軸偏移)
# 向右移動(dòng) 50 像素,向下移動(dòng) 30 像素,耗時(shí) 0.3 秒
pyautogui.moveRel(dx=50, dy=30, duration=0.3)

2. 鼠標(biāo)點(diǎn)擊

  • 基礎(chǔ)點(diǎn)擊:在指定坐標(biāo)執(zhí)行鼠標(biāo)左鍵單擊
# 在 (100, 200) 位置單擊左鍵,duration 為移動(dòng)到目標(biāo)位置的耗時(shí)
pyautogui.click(x=100, y=200, duration=0.2)
  • 指定按鍵點(diǎn)擊:支持左鍵(left)、右鍵(right)、中鍵(middle)
# 右鍵單擊
pyautogui.click(x=100, y=200, button='right', duration=0.2)
# 中鍵單擊
pyautogui.click(x=100, y=200, button='middle', duration=0.2)
  • 雙擊/三擊:快速執(zhí)行多次點(diǎn)擊
# 左鍵雙擊
pyautogui.doubleClick(x=100, y=200, duration=0.2)
# 左鍵三擊
pyautogui.tripleClick(x=100, y=200, duration=0.2)

3. 鼠標(biāo)拖拽

模擬鼠標(biāo)按住并拖動(dòng)的行為,常用于文件拖拽、窗口調(diào)整等場(chǎng)景:

# 從 (x1, y1) 拖拽到 (x2, y2),按住左鍵拖拽
pyautogui.dragTo(x=300, y=400, duration=0.8, button='left')
# 相對(duì)拖拽:基于當(dāng)前位置偏移拖拽
pyautogui.dragRel(dx=100, dy=50, duration=0.5, button='left')

4. 鼠標(biāo)滾輪

模擬滾輪滾動(dòng)行為,clicks 參數(shù)指定滾動(dòng)幅度(正數(shù)向上滾,負(fù)數(shù)向下滾):

# 向下滾動(dòng) 5 格(負(fù)數(shù)表示向下)
pyautogui.scroll(clicks=-5, x=100, y=200)
# 向上滾動(dòng) 3 格(正數(shù)表示向上)
pyautogui.scroll(clicks=3, x=100, y=200)

(二)鍵盤操作:模擬輸入與快捷鍵

1. 普通文本輸入

使用 typewrite() 方法輸入字符串,支持指定輸入間隔(模擬人工輸入速度):

# 直接輸入文本
pyautogui.typewrite("Hello, PyAutoGUI!")
# 帶間隔輸入(每個(gè)字符間隔 0.2 秒)
pyautogui.typewrite("Hello, PyAutoGUI!", interval=0.2)

2. 特殊按鍵輸入

對(duì)于回車鍵、空格鍵、快捷鍵等特殊按鍵,需使用按鍵名稱(封裝在 PyAutoGUI 中),核心方法:

  • press():?jiǎn)未伟聪虏⑨尫拍硞€(gè)按鍵
  • keyDown():按住某個(gè)按鍵不釋放
  • keyUp():釋放按住的按鍵
# 單個(gè)特殊按鍵:按下并釋放回車鍵
pyautogui.press('enter')
# 組合快捷鍵:Ctrl + C(復(fù)制)
pyautogui.keyDown('ctrl')
pyautogui.press('c')
pyautogui.keyUp('ctrl')
# 簡(jiǎn)化組合快捷鍵:使用 hotkey() 方法(推薦)
pyautogui.hotkey('ctrl', 'c')  # 復(fù)制
pyautogui.hotkey('ctrl', 'v')  # 粘貼
pyautogui.hotkey('ctrl', 'a')  # 全選

常用特殊按鍵名稱:enter(回車)、space(空格)、backspace(刪除)、tab(制表符)、shift、ctrlalt 等。

(三)屏幕與圖像識(shí)別:定位目標(biāo)元素

1. 屏幕基礎(chǔ)信息獲取

獲取屏幕分辨率(用于確定坐標(biāo)范圍):

# 獲取屏幕寬度和高度
screen_width, screen_height = pyautogui.size()
print(f"屏幕分辨率:{screen_width} × {screen_height}")
# 獲取當(dāng)前鼠標(biāo)位置坐標(biāo)
mouse_x, mouse_y = pyautogui.position()
print(f"當(dāng)前鼠標(biāo)位置:({mouse_x}, {mouse_y})")

2. 圖像定位:查找屏幕上的目標(biāo)圖像

PyAutoGUI 支持通過(guò)目標(biāo)圖像(如按鈕截圖、圖標(biāo)截圖),自動(dòng)查找其在屏幕上的坐標(biāo),核心方法 locateOnScreen()。

步驟說(shuō)明

  1. 先截取目標(biāo)元素的截圖(保存為 PNG 格式,推薦使用截圖工具精準(zhǔn)截?。?/li>
  2. 使用 locateOnScreen() 查找圖像位置,返回目標(biāo)區(qū)域的坐標(biāo)和尺寸
  3. 通過(guò) center() 方法獲取目標(biāo)區(qū)域的中心坐標(biāo)(便于點(diǎn)擊等操作)
import pyautogui
import time
# 等待 3 秒,預(yù)留時(shí)間切換到目標(biāo)屏幕
time.sleep(3)
try:
    # 查找目標(biāo)圖像(image.png 為目標(biāo)截圖路徑)
    # confidence:匹配精度(0-1,默認(rèn) 1,降低精度可提高查找成功率,需安裝 opencv-python 支持)
    target_location = pyautogui.locateOnScreen('image.png', confidence=0.8)
    if target_location:
        # 獲取目標(biāo)圖像的中心坐標(biāo)
        target_center = pyautogui.center(target_location)
        print(f"目標(biāo)圖像位置:{target_location},中心坐標(biāo):{target_center}")
        # 點(diǎn)擊目標(biāo)中心
        pyautogui.click(target_center.x, target_center.y, duration=0.2)
    else:
        print("未找到目標(biāo)圖像")
except Exception as e:
    print(f"查找失?。簕e}")

注意:使用 confidence 參數(shù)時(shí),需額外安裝 opencv-pythonpip install opencv-python

3. 屏幕截圖

# 截取整個(gè)屏幕并保存為文件
pyautogui.screenshot('full_screen.png')
# 截取指定區(qū)域屏幕(x1, y1, 寬度, 高度)
pyautogui.screenshot('partial_screen.png', region=(100, 100, 300, 200))

(四)安全機(jī)制:防止自動(dòng)化失控

PyAutoGUI 提供了關(guān)鍵的安全保護(hù)機(jī)制,避免自動(dòng)化操作失控(如鼠標(biāo)移到屏幕邊緣無(wú)法找回、無(wú)限循環(huán)操作等):

1. 故障安全觸發(fā)

默認(rèn)開(kāi)啟:當(dāng)鼠標(biāo)移動(dòng)到屏幕左上角(坐標(biāo) (0, 0))時(shí),會(huì)立即拋出 FailSafeException 異常,終止所有自動(dòng)化操作:

# 若操作失控,快速將鼠標(biāo)移到屏幕左上角即可停止程序
try:
    while True:
        pyautogui.moveRel(10, 0, duration=0.1)
except pyautogui.FailSafeException:
    print("故障安全機(jī)制觸發(fā),程序終止")

2. 操作延遲

通過(guò) PAUSE 屬性設(shè)置所有 PyAutoGUI 操作的默認(rèn)間隔時(shí)間(秒),便于觀察操作過(guò)程,也可防止操作過(guò)快導(dǎo)致程序異常:

# 設(shè)置所有操作間隔 0.5 秒
pyautogui.PAUSE = 0.5

四、實(shí)戰(zhàn)示例:簡(jiǎn)單自動(dòng)化操作

import pyautogui
import time
# 安全設(shè)置
pyautogui.PAUSE = 0.5  # 操作間隔 0.5 秒
pyautogui.FAILSAFE = True  # 開(kāi)啟故障安全機(jī)制
# 1. 等待 5 秒,預(yù)留時(shí)間打開(kāi)記事本
print("5 秒后開(kāi)始操作,請(qǐng)打開(kāi)記事本...")
time.sleep(5)
# 2. 輸入文本
pyautogui.typewrite("Python 自動(dòng)化 - PyAutoGUI 實(shí)戰(zhàn)", interval=0.1)
# 3. 換行
pyautogui.press('enter')
# 4. 輸入第二行文本
pyautogui.typewrite("這是一個(gè)簡(jiǎn)單的自動(dòng)化演示", interval=0.1)
# 5. 全選文本(Ctrl + A)
pyautogui.hotkey('ctrl', 'a')
# 6. 復(fù)制文本(Ctrl + C)
pyautogui.hotkey('ctrl', 'c')
# 7. 彈窗提示操作完成
pyautogui.alert("自動(dòng)化操作完成!")

總結(jié) 

到此這篇關(guān)于Python桌面自動(dòng)化框架PyAutoGUI功能的文章就介紹到這了,更多相關(guān)Python桌面自動(dòng)化框架PyAutoGUI內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論

贵德县| 阳泉市| 洮南市| 济宁市| 同德县| 三门峡市| 上思县| 九江市| 同德县| 华池县| 怀仁县| 龙州县| 武乡县| 天门市| 永清县| 福安市| 尉氏县| 共和县| 华坪县| 柳州市| 磐石市| 九龙坡区| 三原县| 化州市| 杂多县| 边坝县| 喜德县| 惠州市| 会宁县| 富裕县| 新巴尔虎左旗| 论坛| 确山县| 嘉义县| 信阳市| 绥化市| 读书| 清徐县| 新建县| 读书| 蓝田县|