您好,登錄后才能下訂單哦!
這篇文章將為大家詳細(xì)講解有關(guān)如何在python中使用PyAutoGui編寫(xiě)一個(gè)計(jì)算器,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對(duì)相關(guān)知識(shí)有一定的了解。
Python是一種編程語(yǔ)言,內(nèi)置了許多有效的工具,Python幾乎無(wú)所不能,該語(yǔ)言通俗易懂、容易入門(mén)、功能強(qiáng)大,在許多領(lǐng)域中都有廣泛的應(yīng)用,例如最熱門(mén)的大數(shù)據(jù)分析,人工智能,Web開(kāi)發(fā)等。
前提環(huán)境準(zhǔn)備
python3+pillow+pyautogui
先提前安裝好python3以及pillow和pyautogui模塊
這里介紹一下模塊安裝方法
pip install pillow pip install pyautogui pip install opencv-python
最終效果是利用python腳本模擬電腦計(jì)算器進(jìn)行自動(dòng)計(jì)算,相當(dāng)于模擬人去點(diǎn)擊自帶的計(jì)算器進(jìn)行運(yùn)算,想要做到這一點(diǎn)需要有兩個(gè)條件:
1.模擬鼠標(biāo)和鍵盤(pán)的輸入工作
2.識(shí)別計(jì)算器按鈕的位置
先來(lái)看一下win10電腦的計(jì)算器是什么樣子的:
我們要知道一點(diǎn),計(jì)算器窗口的位置每次都是不同的,如果你是固定去確定按鈕的坐標(biāo)那就太被動(dòng)了,所以我們這里需要用到圖像識(shí)別,去識(shí)別到按鈕的位置,博主這里
做一個(gè)示例 做一個(gè)1+2=的運(yùn)算。
廢話不多說(shuō)直接上代碼,跟著注釋?zhuān)炊a沒(méi)毛病。
打開(kāi)你的微信截圖截下1,+,2,=四個(gè)圖片存入腳本所在目錄
詳細(xì)代碼
#導(dǎo)入模塊 from PIL import ImageGrab import pyautogui as auto #定義類(lèi) class Screenshoot: def __init__(self): #self.bbox = bbox #self.name = name #self.im = ImageGrab.grab(self.bbox) #定位xy坐標(biāo),confidence為相似度判斷,最好不要使用1.0完全相似,比較容易不識(shí)別 self.position_1 = auto.locateCenterOnScreen('1.png', confidence=0.9) self.position_2 = auto.locateCenterOnScreen('2.png', confidence=0.9) self.position_3 = auto.locateCenterOnScreen('+.png', confidence=0.9) self.position_4 = auto.locateCenterOnScreen('=.png', confidence=0.9) pass def fullshoot(self): #全屏截圖 #self.im.save('01.png') pass def partialshoot(self): #局部精確截圖 #self.im.save(self.name+'.png') pass def position_show(self): #打印各坐標(biāo) print(self.position_1) print(self.position_2) print(self.position_3) print(self.position_4) def caculate(self): #依次點(diǎn)擊按鈕 auto.click(self.position_1) auto.click(self.position_3) auto.click(self.position_2) auto.click(self.position_4) #對(duì)象初始化 shoot1 = Screenshoot() #對(duì)象函數(shù)執(zhí)行 shoot1.position_show() shoot1.caculate() #shoot1.partialshoot() #shoot1.fullshoot()
運(yùn)行結(jié)果
關(guān)于如何在python中使用PyAutoGui編寫(xiě)一個(gè)計(jì)算器就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。