自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

PyAutoGUI:自動(dòng)化鍵鼠操作的 Python 類庫(kù)

開(kāi)發(fā) 后端 自動(dòng)化
有些朋友可能玩過(guò)按鍵精靈,一個(gè)用來(lái)操作鍵盤鼠標(biāo)完成一些自動(dòng)化工作的軟件。其實(shí)如果你學(xué)了Python的話,完全用不著按鍵精靈這種東西了。

 有些朋友可能玩過(guò)按鍵精靈,一個(gè)用來(lái)操作鍵盤鼠標(biāo)完成一些自動(dòng)化工作的軟件。其實(shí)如果你學(xué)了Python的話,完全用不著按鍵精靈這種東西了。因?yàn)閺V泛的Python類庫(kù)里,就有PyAutoGUI這樣可以變成控制鍵盤鼠標(biāo)的類庫(kù),有了它,就可以用Python隨心所欲的操作電腦了。而且這個(gè)類庫(kù)是跨平臺(tái)的,Windows、Linux、macOS都可以用,是不是很吸引人呢?

安裝和使用

安裝PyAutoGUI非常簡(jiǎn)單,從pip安裝即可。

  1. pip install pyautogui 

這里順便介紹一下PyAutoGUI的坐標(biāo)系統(tǒng),和一些常見(jiàn)的繪圖坐標(biāo)系統(tǒng)相同,左上角為原點(diǎn),向右是x軸正方向,向下是y軸正方向。假如你的屏幕是1920*1080,那么右下角的坐標(biāo)就是(1919, 1079),因?yàn)樽鴺?biāo)是從0開(kāi)始的,而不是從1開(kāi)始的,這一點(diǎn)要格外注意。

PyAutoGUI雖然有很多函數(shù),但是函數(shù)的作用基本上就是單擊/雙擊鼠標(biāo)、敲擊/按下/彈起按鍵這樣的,函數(shù)參數(shù)也就是點(diǎn)擊間隔、點(diǎn)擊按鍵這樣很簡(jiǎn)單的參數(shù)。所以我就不列例子了,總之用起來(lái)非常簡(jiǎn)單。

函數(shù)簡(jiǎn)介

下面來(lái)介紹一下PyAutoGUI的函數(shù)。先來(lái)看看鼠標(biāo)操作函數(shù),主要是點(diǎn)擊、拖動(dòng)、滑動(dòng)滾輪這些操作。

鍵盤操作函數(shù),主要就是按鍵、組合鍵操作。

提示框函數(shù),可以用來(lái)顯示警告、確認(rèn)、提示和密碼輸入對(duì)話框,增強(qiáng)程序可操作性。顯示對(duì)話框的時(shí)候,程序會(huì)暫停,直到用戶處理對(duì)話框。

截圖函數(shù),可以從屏幕上截圖,也可以根據(jù)已有圖片從屏幕上定位。主要用途是事先保存一些按鈕圖片,然后從屏幕上識(shí)別定位來(lái)點(diǎn)擊按鈕。

操作實(shí)例

首先來(lái)看看官網(wǎng)的一個(gè)畫(huà)圖例子,我們需要打開(kāi)一個(gè)畫(huà)圖程序的窗口,然后將它放到全屏。然后運(yùn)行下面的代碼,然后切換到畫(huà)圖窗口。等待3秒鐘以后就可以看到PyAutoGUI開(kāi)始畫(huà)圖了。 

  1. import pyautogui  
  2. distance = 100  
  3. pyautogui.moveTo(400, 300)  
  4. while distance > 0:  
  5.     pyautogui.drag(distance, 0, duration=0.1)  
  6.     distance -5  
  7.     pyautogui.drag(0, distance, duration=0.1)  
  8.     pyautogui.drag(-distance, 0, duration=0.1)  
  9.     distance -5  
  10.     pyautogui.drag(0, -distance, duration=0.1) 

結(jié)果如下。其實(shí)這個(gè)畫(huà)圖的代碼很簡(jiǎn)單,就是一圈一圈縮小,然后調(diào)用drag函數(shù)拖住畫(huà)筆不放。

[[426595]]

再來(lái)看一個(gè)圖片識(shí)別的例子,這個(gè)例子需要先安裝OpenCV庫(kù)和opencv-python包。安裝之后就可以運(yùn)行下面的例子了。這個(gè)例子保存了windows 10計(jì)算機(jī)的幾個(gè)按鈕截圖,然后通過(guò)圖形識(shí)別的方式找到并點(diǎn)擊按鈕執(zhí)行操作。注意下面用到了confidence參數(shù),即使圖片沒(méi)有完全匹配也可以識(shí)別到。 

  1. import pyautogui  
  2. import time  
  3. time.sleep(3)  
  4. # Windows計(jì)算器的按鈕截圖  
  5. five = '5.png'  
  6. eight = '8.png'  
  7. multiply = 'multiply.png' 
  8. equals = 'equals.png'  
  9. # 圖片識(shí)別和點(diǎn)擊的函數(shù)  
  10. def find_and_click(image):  
  11.     x, y = pyautogui.locateCenterOnScreen(image, confidence=0.9)  
  12.     pyautogui.click(x, y)  
  13. # 執(zhí)行5*8 
  14. find_and_click(five)  
  15. find_and_click(multiply)  
  16. find_and_click(eight)  
  17. find_and_click(equals) 

代碼以及圖片的完整例子可以查看我的github,地址如下。 

  1. https://github.com/techstay/python-study/tree/master/pyautogui-sample 

通過(guò)PyAutoGUI,你可以輕松的對(duì)圖形界面進(jìn)行自動(dòng)化編程,按照屏幕位置或者圖片識(shí)別來(lái)定位控件的位置,然后通過(guò)編程來(lái)控制鼠標(biāo)和鍵盤輸入。這和按鍵精靈的道理是一樣的。但是Python可以利用廣泛的第三方包來(lái)實(shí)現(xiàn)更多的功能,這一點(diǎn)是按鍵精靈無(wú)法相比的。 

 

責(zé)任編輯:龐桂玉 來(lái)源: 馬哥Linux運(yùn)維
相關(guān)推薦

2024-06-17 10:34:12

2022-06-23 09:17:07

PythonGUIPyAutoGUI

2025-04-23 08:15:00

2018-01-15 10:30:00

AndroidPython 開(kāi)發(fā)

2022-06-13 09:12:04

PythonPDF代碼

2024-05-29 11:16:33

PythonExcel

2021-02-01 12:24:40

Python日志Expect

2020-12-01 07:01:41

CSS工具重構(gòu)

2017-12-17 21:58:18

2023-12-21 11:12:31

Node.js.NET開(kāi)源庫(kù)

2024-05-21 09:52:19

2022-02-18 13:12:49

人工智能自動(dòng)化技術(shù)

2022-11-15 10:20:55

物聯(lián)網(wǎng)傳感器

2022-02-17 17:37:17

超級(jí)自動(dòng)化人工智能AI

2010-12-06 09:59:58

2020-04-29 11:28:54

智能自動(dòng)化機(jī)器人流程自動(dòng)化AI

2023-11-21 22:48:50

2022-07-28 16:38:11

數(shù)字化轉(zhuǎn)型

2023-09-01 09:21:03

Python自動(dòng)化測(cè)試

2020-12-08 06:20:49

前端重構(gòu)Vue
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)