最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網 會員登陸 & 注冊

掌握自動化操作工具——介紹Python庫PyAutoGUI

2023-07-29 21:08 作者:編程啟航  | 我要投稿

引言:

在現(xiàn)代科技時代,自動化操作成為提高工作效率和減輕重復性工作負擔的重要手段。而Python作為一門強大而靈活的編程語言,提供了豐富的庫和工具來實現(xiàn)各種自動化任務。本文將重點介紹Python庫PyAutoGUI,它是一個用于模擬鼠標和鍵盤操作的工具,可以幫助我們實現(xiàn)自動化操作。讓我們一起來探索PyAutoGUI的強大功能和用法。

什么是PyAutoGUI?

  • 簡介:PyAutoGUI是一個Python庫,它允許我們通過編程方式模擬鼠標和鍵盤的操作,實現(xiàn)自動化任務。

  • 安裝:通過pip命令可以輕松安裝PyAutoGUI,確保你的Python環(huán)境已經正確配置。

PyAutoGUI的主要功能

  • 鼠標操作:PyAutoGUI可以模擬鼠標移動、點擊、拖拽等操作,可以控制鼠標的位置和點擊的坐標。

  • 鍵盤操作:PyAutoGUI可以模擬鍵盤按鍵和組合鍵的操作,如按下和釋放按鍵、輸入文本等。

  • 屏幕操作:PyAutoGUI可以獲取屏幕的大小、截屏、查找指定圖像的位置等。

  • 延時控制:PyAutoGUI可以控制鼠標和鍵盤操作的延時,以確保操作的正確性和穩(wěn)定性。

使用PyAutoGUI實現(xiàn)自動化任務

  • 導入庫和初始化:導入PyAutoGUI庫,并進行初始化設置,如延時時間等。

  • 模擬鼠標操作:使用PyAutoGUI的鼠標操作函數(shù),模擬鼠標移動、點擊、拖拽等操作??梢越Y合屏幕坐標和圖像識別等技術來實現(xiàn)更復雜的操作。

  • 模擬鍵盤操作:使用PyAutoGUI的鍵盤操作函數(shù),模擬鍵盤按鍵和組合鍵的操作??梢詫崿F(xiàn)自動化的文本輸入、快捷鍵操作等。

  • 屏幕操作和圖像識別:使用PyAutoGUI獲取屏幕信息,如屏幕大小、截屏和查找圖像位置等??梢杂脕碜詣踊R別和操作特定的圖像場景。

  • 錯誤處理和異常處理:在使用PyAutoGUI過程中,要注意異常處理和錯誤處理,以確保程序的健壯性和穩(wěn)定性。

PyAutoGUI的應用場景

  • 自動化測試:PyAutoGUI可以模擬用戶的操作,用于自動化測試各種軟件和系統(tǒng)的功能。

  • 數(shù)據(jù)采集和處理:PyAutoGUI可以幫助自動化從網頁或應用程序中采集數(shù)據(jù),并進行處理和分析。

  • 軟件演示和教程錄制:PyAutoGUI可以用于自動化演示軟件的功能和操作,錄制教程視頻等。

  • 游戲輔助工具:PyAutoGUI可以用來制作游戲輔助工具,自動化完成一些重復性操作。

結論:

PyAutoGUI是一個方便且功能強大的Python庫,用于實現(xiàn)自動化操作,無論是自動化測試、數(shù)據(jù)采集還是輔助工具開發(fā),PyAutoGUI都是一個強大而實用的工具。通過熟練掌握PyAutoGUI,我們可以大幅提升工作效率,實現(xiàn)自動化操作的便利性和穩(wěn)定性。讓我們一起開始探索PyAutoGUI吧!

代碼教程

控制功能

控制鼠標鍵盤使用的模塊為:pyautogui,這個模塊操作起鼠標鍵盤的時候,非常的迅速,而且如果該模塊控制了鼠標后,程序比較難關閉,這時我們有兩個方法專門針對以上的情況:

自動防故障功能

pyautogui.FAILSAFE =False

默認這項功能為True, 這項功能意味著:當鼠標的指針在屏幕的最坐上方,程序會報錯;目的是為了防止程序無法停止;

停頓功能

pyautogui.PAUSE = 1 ? ?

意味著所有pyautogui的指令都要暫停一秒;其他指令不會停頓;這樣做,可以防止鍵盤鼠標操作太快;

鼠標操作

控制鼠標移動

獲得屏幕分辨率

# 返回所用顯示器的分辨率;?

# 輸出:Size(width=1920, height=1080)?

print(pyautogui.size())?

width,height = pyautogui.size()?

print(width,height) # 1920 1080

移動鼠標

pyautogui.moveTo(100,300,duration=1) ??

# 按方向移動,左右正負值對應右左,上下正負值對應下上?

# moveRel():這是PyAutoGUI庫中的一個函數(shù),用于模擬相對于當前鼠標位置的移動操作。?

# 第一個參數(shù)是左右移動像素值,第二個是上下,向右移動100px,向下移動500px, 這個過程持續(xù) 1 秒鐘;?

pyautogui.moveRel(100,500,duration=1) ?

獲取鼠標位置

print(pyautogui.position()) ??

# 得到當前鼠標位置;輸出:Point(x=200, y=800)

控制鼠標點擊

# 點擊鼠標?

pyautogui.click(10,10)? ?# 鼠標點擊指定位置,默認左鍵?

pyautogui.click(10,10,button='left')? # 單擊左鍵?

pyautogui.click(1000,300,button='right')? # 單擊右鍵?

pyautogui.click(1000,300,button='middle') ?# 單擊中間# 雙擊鼠標 pyautogui.doubleClick(10,10)? # 指定位置,雙擊左鍵?

pyautogui.rightClick(10,10) ? # 指定位置,雙擊右鍵?

pyautogui.middleClick(10,10) ?# 指定位置,雙擊中鍵

# 點擊 & 釋放?

pyautogui.mouseDown()? ?# 鼠標按下?

pyautogui.mouseUp() ? ?# 鼠標釋放

控制鼠標拖動


控制鼠標滾動

控制鼠標滾動的函數(shù)是scroll(), 傳入一個整數(shù)的參數(shù),說明向上或向下滾動多少個單位;單位根據(jù)操作系統(tǒng)不同而不同;

# 向上滾動300個單位;?

pyautogui.scroll(300)

屏幕處理

獲取屏幕截圖

我們控制鼠標的操作,不能盲目的進行,所以我們需要監(jiān)控屏幕上的內容,從而決定要不要進行對應的操作, pyautogui 提供了一個方法screenshot(),可以返回一個Pillow的image對象;

這里有三個常用函數(shù):

  • im = pyautogui.screenshot():返回屏幕的截圖,是一個Pillow的image對象

  • im.getpixel((500, 500)):返回im對象上,(500,500)這一點像素的顏色,是一個RGB元組

  • pyautogui.pixelMatchesColor(500,500,(12,120,400)) :是一個對比函數(shù),對比的是屏幕上(500,500)這一點像素的顏色,與所給的元素是否相同;

im = pyautogui.screenshot() im.save('屏幕截圖.png')# screenshot()返回一個Pillow的image對象 im = pyautogui.screenshot() # 輸出(500,500)像素點的顏色,一個RGB元組 print(im.getpixel((500, 500))) # (45, 42, 46) # 判斷顏色是否匹配 print(pyautogui.pixelMatchesColor(500, 500, (12, 120, 400)))

識別圖像

首先,我們需要先獲得一個屏幕快照,例如我們想要點贊,我們就先把大拇指的圖片保存下來;

然后使用函數(shù):locateOnScreen(‘zan.png’) ,

  • 如果可以找到圖片,則返回圖片的位置,如:Box(left=25, top=703, width=22, height=22);

  • 如果找不到圖片,則返回None;

如果,屏幕上有多處圖片可以匹配,則需要使用locateAllOnScreen(‘zan.png’) ,

  • 如果匹配到多個值,則返回一個list,參考如下:

# 圖像識別(一個)?

btm = pyautogui.locateOnScreen('贊.png') print(btm) ??

# Box(left=1200, top=350, width=50, height=50)?


# 圖像識別(多個)?

btm = pyautogui.locateAllOnScreen('贊.png')?

print(list(btm)) ??

# [Box(left=1200, top=350, width=50, height=50), Box(left=25, top=594, width=50, height=50)]

pyautogui.center((left, top, width, height)) 返回指定位置的中心點;這樣,我們就可以再配合鼠標操作點擊找到圖片的中心;

鍵盤輸入

鍵盤輸入函數(shù)

# 模擬按鍵按下;?

pyautogui.keyDown('shift')?

# 模擬按鍵釋放;?

pyautogui.keyUp('shift')?

# 就是調用keyDown() & keyUp(),模擬一次按鍵?

pyautogui.press('4')?

# 第一參數(shù)是輸入內容,第二個參數(shù)是每個字符間的間隔時間;?

pyautogui.typewrite('this',0.5)?

# typewrite 還可以傳入單字母的列表;

pyautogui.typewrite(['T','h','i','s'])

# 輸出: $ pyautogui.keyDown('shift') ? ?

# 按下shift pyautogui.press('4') ? ?

# 按下 4 pyautogui.keyUp('shift') ??

# 釋放 shift# 緩慢的輸出$:?

pyautogui.typewrite('$$$$', 0.5)

鍵盤特殊按鍵

有時我們需要輸入一些特殊的按鍵,比如向左的箭頭,這些有相對應的鍵盤字符串表示,例如:

# 輸出:This pyautogui.typewrite(['T','i','s','left','left','h',])

解釋:這里的left就是向左的箭頭;諸如此類的鍵盤字符串,還有很多,參考下表:

鍵盤字符串

說明


如果我們需要模擬復制的快捷鍵 ctrl + c ,如果用前面的方法,則代碼為:

pyautogui.keyDown('ctrl')?

pyautogui.keyDown('c')?

pyautogui.keyUp('c')?

pyautogui.keyUp('ctrl')

快捷鍵的按鍵與釋放順序非常關鍵,這時我們可以使用 pyautogui.hotkey(),這個函數(shù)可以接受多個參數(shù),按傳入順序按下,再按照相反順序釋放。上述快捷鍵 ctrl + c ,可以將代碼變?yōu)椋?/span>

pyautogui.hotkey('ctrl','c')

提示信息框

提示框/警告框

import pyautogui a = pyautogui.alert(text='This is an alert box.', title='Test') print(a)

輸出如下圖:點擊確定,返回值為‘OK’

選擇框

import pyautogui a = pyautogui.confirm('選擇一項', buttons=['A', 'B', 'C']) print(a)

輸出如下圖:點擊B選項,返回值為‘B’

密碼輸入

import pyautogui a = pyautogui.password('Enter password (text will be hidden)') print(a)

輸出如下圖:輸入密碼,顯示為密文,點擊OK,返回值為剛剛輸入的值;

普通輸入

import pyautogui a = pyautogui.prompt('請輸入一個數(shù)字:') print(a)

輸出如下圖:顯示為明文,點擊OK,返回值為剛剛輸入的值;

實例

鼠標控制鼠標畫一個正方形

for i in range(2): ? # 畫正方形 ? ?pyautogui.moveTo(200,200,duration=1) ? ?pyautogui.moveTo(200,400,duration=1) ? ?pyautogui.moveTo(400,400,duration=0.5) ? ?pyautogui.moveTo(400,200,duration=2)

獲取鼠標的實時位置

import pyautogui import time try: ? ?while True: ? ? ? ?x,y = pyautogui.position() ? ? ? ?posi = 'x:' + str(x).rjust(4) + ' y:' + str(y).rjust(4) ? ? ? ?print('\r',posi,end='') ? ? ? ?time.sleep(0.5) except KeyboardInterrupt: ? ?print('已退出!')

顯示效果:

獲取鼠標位置與所在位置的顏色

import pyautogui import time try: ? ?while True: ? ? ? ?x,y = pyautogui.position() ? ? ? ?rgb = pyautogui.screenshot().getpixel((x,y)) ? ? ? ?posi = 'x:' + str(x).rjust(4) + ' y:' + str(y).rjust(4) + ' ?RGB:' + str(rgb) ? ? ? ?print('\r',posi,end='') ? ? ? ?time.sleep(0.5) except KeyboardInterrupt: ? ?print('已退出!')

顯示效果:



掌握自動化操作工具——介紹Python庫PyAutoGUI的評論 (共 條)

分享到微博請遵守國家法律
叙永县| 淄博市| 侯马市| 炎陵县| 禄丰县| 合江县| 温泉县| 蓬莱市| 红原县| 获嘉县| 清水河县| 务川| 华坪县| 扶绥县| 阳东县| 牡丹江市| 滦南县| 德化县| 江陵县| 温宿县| 巴林右旗| 文山县| 军事| 福清市| 池州市| 长顺县| 隆子县| 南靖县| 淄博市| 衡东县| 阳东县| 阿尔山市| 封开县| 福泉市| 蓬溪县| 昌吉市| 怀远县| 福州市| 五大连池市| 石景山区| 浮山县|