擊敗無聊的辦公室重復(fù)操作,用 Python 控制鼠標(biāo)和鍵盤
作者 |?小帥b
來源 | 學(xué)習(xí)python的正確姿勢
還在為需要在電腦做一些重復(fù)的點(diǎn)擊或者提交表單等操作而苦惱嗎?

如果告訴你能通過 Python 預(yù)先寫好相關(guān)的操作指令,讓它幫你操作鼠標(biāo)和鍵盤,而你翹著二郎腿和妹子聊著天豈不是美滋滋?

一、pyautogui庫
我們可以先安裝一下 pyautogui 這個庫,通過它你就可以寫一些 Python 腳本來控制你的鼠標(biāo)和鍵盤了,比如你可以定義鼠標(biāo)在哪個位置點(diǎn)擊,定義鍵盤在什么時候輸入什么內(nèi)容等,從而達(dá)到自動化操作所有你想要操作的軟件應(yīng)用,值得說的一點(diǎn)是,他可以運(yùn)行在 Win、MacOS、Linux平臺上。
你可以通過 pip 進(jìn)行安裝:
python3?-m?pip?install?pyautogui
源碼:https://github.com/asweigart/pyautogui
pip主頁:https://pypi.org/project/PyAutoGUI/
二、操作鼠標(biāo)
安裝完之后,就可以使用它了,比如我們現(xiàn)在想要知道鼠標(biāo)的位置就可以通過 position 方法獲?。?br />

也可以寫一個方法來實(shí)時獲取鼠標(biāo)的位置:

通過 while 循環(huán)不斷監(jiān)聽鼠標(biāo)當(dāng)前的位置,運(yùn)行一波就是這樣:

想要調(diào)用鼠標(biāo)的點(diǎn)擊方法可以這樣:
單擊:
>>> pyautogui.click()
右擊:
>>> pyautogui.click(button='right')
雙擊:
>>> pyautogui.doubleClick()
比如現(xiàn)在我的桌面有一張帥照:

想使用 Python 來操作鼠標(biāo)去打開它,那么就可以這樣,把鼠標(biāo)輕輕的放在帥照上面,然后獲取一下鼠標(biāo)在這個位置的坐標(biāo):

可以發(fā)現(xiàn)這張照片的位置是在 (74,197),那么就可以調(diào)用鼠標(biāo)的雙擊方法:

我們在 doubleClick 方法中傳入了坐標(biāo)位置,所以它可以將鼠標(biāo)移動的位置進(jìn)行雙擊。
當(dāng)然,你也可以調(diào)用 moveTo 方法來移動鼠標(biāo),比如讓鼠標(biāo)移動到 100,200 的位置就可以這樣:
pg.moveTo(100,200,2)

這里的 2 是移動秒數(shù)的意思,默認(rèn)為 0.1 ,快速移動的那種。
想要拖拽鼠標(biāo),可以調(diào)用 dragTo 方法,比如:
pg.dragTo(300, 400, 2, button='left')

表示的是從當(dāng)前位置拖動到指定坐標(biāo)的位置,其中的 2 代表移動時間,button 可以設(shè)置是左鍵還是右鍵。

三、操作鍵盤
接著我們來操作鍵盤
可以同過 press 來調(diào)用鍵盤的操作,比如:
按下回車:
>>> pyautogui.press('enter')
按下左鍵:
>>> pyautogui.press('left')
按下 CTRL:
>>> pyautogui.press('ctrl')
快捷鍵的話可以使用 hotkey 方法,比如:
按下 Ctrl + Shift + T:
>>> pyautogui.hotkey('ctrl', 'shift', 't')
復(fù)制:>>> pyautogui.hotkey('ctrl', 'c')
按住不動可以使用 keyDown 方法,釋放按鍵可以使用 keyUp 方法,比如:
切換窗口:

運(yùn)行一波就是這樣:

剛剛的 pg.PAUSE=1 指的是每隔一秒執(zhí)行一個操作指令。
想要控制鍵盤輸入內(nèi)容,可以使用 write 方法,比如:
輸入 fxxkpython:
pg.write('fxxk Python !', interval=0.3)

四、案例
知道了這些你就可以去玩一些有意思的事了,舉幾個簡單的例子給你樂呵樂呵。
比如指定它去瀏覽器搜索內(nèi)容:

運(yùn)行一波就是這樣:

是不是有點(diǎn) selenium 的內(nèi)味了。
又比如操作它去微信聊天:

運(yùn)行一波:

再舉一個官方的例子,你可以讓它去畫圖:

運(yùn)行一波就是這樣:

ok,以上就是小帥b今天給你帶來的分享,看完這個,自動填寫表單啥的不在話下了吧?希望對你有幫助,那么我們下回見,peace!
評論
圖片
表情
