<kbd id="5sdj3"></kbd>
<th id="5sdj3"></th>

  • <dd id="5sdj3"><form id="5sdj3"></form></dd>
    <td id="5sdj3"><form id="5sdj3"><big id="5sdj3"></big></form></td><del id="5sdj3"></del>

  • <dd id="5sdj3"></dd>
    <dfn id="5sdj3"></dfn>
  • <th id="5sdj3"></th>
    <tfoot id="5sdj3"><menuitem id="5sdj3"></menuitem></tfoot>

  • <td id="5sdj3"><form id="5sdj3"><menu id="5sdj3"></menu></form></td>
  • <kbd id="5sdj3"><form id="5sdj3"></form></kbd>

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

    共 1977字,需瀏覽 4分鐘

     ·

    2021-10-01 08:40

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

    安裝和使用

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

    pip install pyautogui

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

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

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

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

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

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

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

    操作實(shí)例

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

    import pyautogui

    distance = 100
    pyautogui.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)

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

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

    import pyautogui
    import time

    time.sleep(3)

    # Windows計(jì)算器的按鈕截圖
    five = '5.png'
    eight = '8.png'
    multiply = 'multiply.png'
    equals = 'equals.png'

    # 圖片識(shí)別和點(diǎn)擊的函數(shù)


    def find_and_click(image):
    x, y = pyautogui.locateCenterOnScreen(image, confidence=0.9)
    pyautogui.click(x, y)


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

    文章轉(zhuǎn)載:Python編程學(xué)習(xí)圈
    (版權(quán)歸原作者所有,侵刪)

    點(diǎn)擊下方“閱讀原文”查看更多

    瀏覽 60
    點(diǎn)贊
    評(píng)論
    收藏
    分享

    手機(jī)掃一掃分享

    分享
    舉報(bào)
    評(píng)論
    圖片
    表情
    推薦
    點(diǎn)贊
    評(píng)論
    收藏
    分享

    手機(jī)掃一掃分享

    分享
    舉報(bào)

    <kbd id="5sdj3"></kbd>
    <th id="5sdj3"></th>

  • <dd id="5sdj3"><form id="5sdj3"></form></dd>
    <td id="5sdj3"><form id="5sdj3"><big id="5sdj3"></big></form></td><del id="5sdj3"></del>

  • <dd id="5sdj3"></dd>
    <dfn id="5sdj3"></dfn>
  • <th id="5sdj3"></th>
    <tfoot id="5sdj3"><menuitem id="5sdj3"></menuitem></tfoot>

  • <td id="5sdj3"><form id="5sdj3"><menu id="5sdj3"></menu></form></td>
  • <kbd id="5sdj3"><form id="5sdj3"></form></kbd>
    色香蕉影院 | 手机看欧美A片 | www.999国产精品乱伦 | 超变态操网站 | 在线观看黄片 |