PyAutoGUI:自動化鍵鼠操作的Python類庫

2020-12-04 樂百川評遊戲

隨便挑了一張看起來比較高端的圖片

有些朋友可能玩過按鍵精靈,一個用來操作鍵盤滑鼠完成一些自動化工作的軟體。其實如果你學了Python的話,完全用不著按鍵精靈這種東西了。因為廣泛的Python類庫裡,就有PyAutoGUI這樣可以變成控制鍵盤滑鼠的類庫,有了它,就可以用Python隨心所欲的操作電腦了。而且這個類庫是跨平臺的,Windows、Linux、macOS都可以用,是不是很吸引人呢?

Github頁面

安裝和使用

安裝PyAutoGUI非常簡單,從pip安裝即可。

pip install pyautogui

用pip安裝

這裡順便介紹一下PyAutoGUI的坐標系統,和一些常見的繪圖坐標系統相同,左上角為原點,向右是x軸正方向,向下是y軸正方向。假如你的屏幕是1920*1080,那麼右下角的坐標就是(1919, 1079),因為坐標是從0開始的,而不是從1開始的,這一點要格外注意。

PyAutoGUI雖然有很多函數,但是函數的作用基本上就是單擊/雙擊滑鼠、敲擊/按下/彈起按鍵這樣的,函數參數也就是點擊間隔、點擊按鍵這樣很簡單的參數。所以我就不列例子了,總之用起來非常簡單。

函數簡介

下面來介紹一下PyAutoGUI的函數。先來看看滑鼠操作函數,主要是點擊、拖動、滑動滾輪這些操作。

滑鼠操作

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

鍵盤操作

提示框函數,可以用來顯示警告、確認、提示和密碼輸入對話框,增強程序可操作性。顯示對話框的時候,程序會暫停,直到用戶處理對話框。

提示框函數

截圖函數,可以從屏幕上截圖,也可以根據已有圖片從屏幕上定位。主要用途是事先保存一些按鈕圖片,然後從屏幕上識別定位來點擊按鈕。

截圖函數

操作實例

首先來看看官網的一個畫圖例子,我們需要打開一個畫圖程序的窗口,然後將它放到全屏。然後運行下面的代碼,然後切換到畫圖窗口。等待3秒鐘以後就可以看到PyAutoGUI開始畫圖了。

import pyautoguidistance = 100pyautogui.moveTo(400, 300)while distance > 0: pyautogui.drag(distance, 0, duration=0.1) distance -= 5 pyautogui.drag(0, distance, duration=0.1) pyautogui.drag(-distance, 0, duration=0.1) distance -= 5 pyautogui.drag(0, -distance, duration=0.1) 結果如下。其實這個畫圖的代碼很簡單,就是一圈一圈縮小,然後調用drag函數拖住畫筆不放。

畫出來的圖

再來看一個圖片識別的例子,這個例子需要先安裝OpenCV庫和opencv-python包。安裝之後就可以運行下面的例子了。這個例子保存了windows 10計算機的幾個按鈕截圖,然後通過圖形識別的方式找到並點擊按鈕執行操作。注意下面用到了confidence參數,即使圖片沒有完全匹配也可以識別到。

import pyautoguiimport timetime.sleep(3)# Windows計算器的按鈕截圖five = '5.png'eight = '8.png'multiply = 'multiply.png'equals = 'equals.png'# 圖片識別和點擊的函數def find_and_click(image): x, y = pyautogui.locateCenterOnScreen(image, confidence=0.9) pyautogui.click(x, y)# 執行5*8=find_and_click(five)find_and_click(multiply)find_and_click(eight)find_and_click(equals)代碼以及圖片的完整例子可以查看我的github,地址如下。

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

通過PyAutoGUI,你可以輕鬆的對圖形界面進行自動化編程,按照屏幕位置或者圖片識別來定位控制項的位置,然後通過編程來控制滑鼠和鍵盤輸入。這和按鍵精靈的道理是一樣的。但是Python可以利用廣泛的第三方包來實現更多的功能,這一點是按鍵精靈無法相比的。

相關焦點

  • python字典操作大全,學習python第7天
    python字典跟列表類型,能存儲多個數據,並且還能在訪問元素的時候可以很快定位到需要的元素。而python字典操作方法有多少種呢?下面羽憶教程為您介紹。python字典python字典概念:python字典可以用來存儲任意類型對象,python字典都是由一個鍵和一個值組成的「鍵值對」,兩者之間用冒號隔開,結構如:sco = {'name':'小明','age
  • Python類庫Pillow實現圖片裁剪、縮放、效果增強等功能
    python注意事項1、 Pillow和PIL不能共存;個人在第一次安裝時由於pip版本為19.0,導致無法正常安裝,需要更新pip,pip的更新命令:python -m pip install --upgrade pip更新過程如下圖:
  • Python實現視頻裁剪添加水印功能
    今天來實現一個利用Python的moviepy類庫裁剪視頻的功能。寫這個功能的初衷是想批量的裁剪一下視頻,下面一起來看一下代碼吧!python目前我們實現的是將單獨一個視頻進行裁剪。本次我們將目前視頻截取一小段內容,並為其添加一個水印圖片。
  • 鍵鼠雙變速!彩虹鳥戰神網吧鍵鼠套裝
    今天為大家帶來的彩虹鳥戰神網吧專用鍵鼠套裝就是一款不僅支持滑鼠解析度調節,而且還支持鍵盤響應速度調節的鍵鼠套裝。現在就讓我們一起來看一看。    彩虹鳥 戰神網吧專用鍵盤7段變速,反映快人一步。按鍵觸感輕柔。鍵冒字符雷射鐳雕,耐磨指數提高,越用越清晰,雙彈簧加平衡杆,手感極佳,彈力實足。大託手設計,使用更舒適,鍵盤4星級防水,結合拋光工藝,彰顯尊貴。線材加粗配置設計。防拉扯。
  • 《怪物獵人世界》PC版鍵鼠鍵位怎樣設置 鍵鼠鍵位設置推薦
    導 讀   《怪物獵人世界》PC版使用鍵鼠操作一般不如手柄靈活,但是通過改建也能進行不小的操作優化。
  • 太陽能鍵鼠原理剖析及未來五大對手_羅技 K750鍵盤_鍵鼠新聞...
    [中關村在線鍵鼠頻道原創] 自無線鍵鼠誕生以來,除了方便使用,還帶來了電池問題。早期的無線鍵鼠功耗高,沒幾天就要換電池了;後來技術發展了,更換電池的時間延長到了幾個月甚至到目前最長的3年。    但不管怎麼說,產生廢舊電池始終不環保。
  • 精巧清爽 雷柏8100M多模式無線鍵鼠套裝上市
    在更換日常使用的電子產品之前,不妨低頭看看自己的鍵鼠,還是當年老舊黑乎乎的「原配」麼?那麼,是時候換一款時尚靚麗的新鍵鼠啦。近日,老牌實力大廠,國產外設領軍品牌——雷柏(RAPOO)推出了8100M多模式無線鍵鼠套裝,精巧清爽的外觀,全尺寸巧克力鍵帽的舒適,輔以雷柏標誌的多模式無線連接技術,讓你的辦公桌面也邁入新時代。
  • 兩百元級鍵鼠套裝佼佼者 鍵鼠套裝推薦
    [中關村在線鍵鼠頻道原創]如果大家有意購買一款兩百元級的鍵鼠套裝認真的看看這篇文章,無論你注重的是外觀還是性能,無論你需要的是有線還是無線,無論你是用來辦公還是遊戲,筆者下面的推薦產品都能滿足你的需求。
  • WIN10新搭檔 雷柏X8100無線鍵鼠套裝上市
    無線鍵鼠作為當前鍵鼠市場上的暢銷品,無疑更加讓人關注。作為國內首屈一指的無線鍵鼠大鱷,從用戶的角度出發,雷柏近期推出了高性價比的無線鍵鼠套裝--雷柏X8100無線鍵鼠套裝。這款鍵鼠套裝集合了2.4G無線傳輸、多媒體快捷鍵、高精度引擎、密封式抗氧化導電膜、低功耗技術等特點,支持Windows XP/ Vista/7,Windows8,Windows10等系統,完全從方便用戶的角度設計製造。
  • Python讀取ini配置文件
    python看過我之前文章的同學可能知道,最近一直在做百度語音合成的功能,進一步的延伸功能,此次是批量生成文章的語音文件。目前是使用python來實現的,將代碼打包成了exe文件,方便客戶進行測試。讀取配置使用python自帶模塊configparser來實現;1、引入類庫,如下:import configparse2、配置文件絕對路徑(需要引入os)pro_dir = os.path.split(os.path.realpath(__file__))[0]config_path = os.path.join(
  • 一鍵宏編 血手幽靈B2418鍵鼠套裝熱銷
    今天筆者給大家帶來一款鍵鼠套裝:血手幽靈B2418鍵鼠套裝,這款鍵鼠套裝外形外形非常華麗,做工精良,八健光軸,現在京東售價血手幽靈B2418鍵鼠套裝(截圖來自京東)    血手幽靈B2418鍵鼠套裝使用了血手幽靈全新的Light
  • Python開發者必知的 11 個 Python GUI 庫,你用過幾個?
    當你使用python編寫應用程式時,你就一定要使用GUI。Python GUI的選擇有很多。目前來說,Python GUI程序庫有30多個跨平臺框架。現在就列出其我認為最好的11個.
  • 給XBOX ONE加上鍵鼠,這個遙控器很強大
    主機黨(尤其是XB用戶)最期盼的事情也許就是能支持鍵鼠,畢竟FPS遊戲使用手柄操控起來精準度太低了。可惜不知何年何月微軟才能大發慈悲。在這之前有沒有好的解決方法呢?貌似已經有了外接鍵鼠的設備,但是價格貴的出奇。那還有沒有另闢蹊徑的妙招呢?最近手裡的一款智能遙控器讓我茅塞頓開。
  • RK526無線鍵鼠套裝開箱體驗
    先前,才剛推出300出頭的RK84三模無線機械鍵盤,具備2.4G、藍牙、有線三種連接方式,還是搭載使用CHERRY MX軸體,可以說,這價位84鍵機械鍵盤,沒有對手。現在,RK更加拼,把早期的RK84雙模版拿出來組合一款無線滑鼠一起銷售,首發價格更是低至235元。簡直就是超低成本無線桌面鍵鼠解決方案。  鍵盤還是原來那一套84鍵模具,雙模連接,沒有藍牙模塊。
  • Python視頻教程網課編程零基礎入門數據分析網絡爬蟲全套Python...
    總目錄 零基礎全能篇(4套課程) 實用編程技巧進價(1套課程) 數據分析與挖掘(8套課程) 辦公自動化(3套課程) 機器學習與人工智慧(7套課程) 開發實戰篇(4套課程) 量化投資(2套課程) 網絡爬蟲(6套課程) 資料庫操作(1套課程) python高級編程
  • 操縱杆式滑鼠:單手鍵鼠組合徹底解放你的右手
    售價為199美元的Twiddler 3鍵鼠組合就是為了應對這樣的情況而誕生的,它能夠讓你在正常工作的同時將其中一隻手解放出來,你可以做點其他事,比如喝水、用筆寫點什麼甚至是掏出手機來回個簡訊之類的。  據了解,Twiddler 3鍵鼠組合併不是將滑鼠、鍵盤縮小或者摺疊,而是採用了操縱杆一樣的機身設計,用戶只需要一隻手就能完成鍵盤和滑鼠的操作
  • 教你如何把手機屏幕投到電腦上玩手遊還能跟端遊一樣鍵鼠操作!
    不僅是因為手機玩遊戲更便捷,更重要操作比端遊簡單門檻更低,吸引了大量的學生黨跟女性玩家,因此,PUBG、COD、LOL等都相繼出了手遊!但是對不少端遊老玩家和對遊戲操作要求比較高的人來說,不少端遊被移植到手機上後操作上限太低,而且手感完全不能跟鍵鼠相提並論,但是又想跟喜歡玩手遊的朋友一起組隊玩,畢竟現在手遊才是大趨勢,玩家總體量比端遊多,那怎麼辦呢?
  • 誰說好貨不便宜 百元級鍵鼠套裝推薦
    而且在市場和網絡平臺上,百元級別的鍵鼠套裝的樣式也是非常的多,讓用戶們非常煩惱。那麼如何才能買到更加使用的鍵鼠套裝呢?下面筆者就為大家介紹幾款百元級別高性價比的鍵鼠套裝吧。多彩7800G無線鍵鼠套裝由多彩M3100G鍵盤搭配多彩M105GB無線滑鼠組成,多彩7800G無線鍵鼠套裝還採用了主流的2.4G無線傳輸技術,並提供了10米的有效操作距離。天貓售價85元。下圖來自天貓商城。
  • Java開發人員必知必會的20種常用類庫和API
    四、通用類庫有幾個很好的第三方通用庫可供Java開發人員使用,例如Apache Commons和Google Guava。我會經常在我的代碼中使用這些通用類庫,因為這些類庫都是經過無數開發者實踐過的,無論是實用性還是在性能等方面都是最佳的。
  • 飛智Q1鍵鼠轉換器,讓手遊吃雞同PC端一樣簡單
    但手遊由於鍵位控制的受限,遠沒有PC端的鍵鼠來得舒適,所以出現了鍵鼠轉換器這類神器,作為移動遊戲體驗引領者飛智科技,於今年4月推出了一款新品——飛智Q1手遊鍵鼠轉換器,有著8年多軟硬體技術積的飛智,新品表現如何呢?大家一起往下看。跳過開箱,直奔主題,眼前的這個「小東西」便是飛智Q1手遊鍵鼠轉換器,機身非常小巧,尺寸僅為64*60*15mm,可輕鬆裝進口袋。