pyautogui typewrite_解放双手:Pyautogui帮你work
今天介紹一個很有用的python庫——Pyautogui,它可以通過屏幕的xy坐標系統來確定目標位置,進而控制鼠標和鍵盤發送虛擬的點擊和輸入任務。這對于你要完成機械重復枯燥的電腦操作來說非常地方便。
安裝Pyautogui庫很簡單,命令窗口輸入:
pip install pyautogui
1 Pyautogui的坐標軸系統
Pyautogui的鼠標函數使用想x,y坐標,原點在屏幕的左上角,向右為x軸正方向,向下為y軸正方向。知道了這個就可以任意定位屏幕上的點啦。
不過,想要準確知道屏幕上的坐標也不是一件容易的事,這里推薦一個超級好用的工具——FastStone Capture 。這個小工具除了定位坐標,還能各種花式截圖,包括形狀截圖,滾動截圖,并且還能錄制屏幕,取色。
2 控制鼠標
(1)確定鼠標當前位置
pyautogui.position() #確定鼠標當前位置,返回x,y坐標的元組
(2)移動
pyautogui.moveTo(x,y[,duration = t]) # 將鼠標移動到屏幕指定位置, #x,y是目標位置的橫縱坐標,duration指定鼠標光標移動到目標位置 #所需要的秒數,t可以為整數或浮點數,省略duration參數表示 #立即將光標移動到指定位置(在PyAutoGUI函數中,所有的duration #關鍵字參數都是可選的) #Attention:所有傳入x,y坐標的地方,都可以用坐標x,y #的元組或列表替代,(x,y)/[x,y]pyautogui.moveRel(x,y[,duration = t]) #相對于當前位置移動光標, #這里的x,y不再是目標位置的坐標,而是偏移量, #如,pyautogui.moveRel(100,0,duration=0.25) #表示光標相對于當前所在位置向右移動100個像素
(3)點擊
完整的點擊:按下鼠標按鍵,然后放開,同時不移動位置
pyautogui.mouseDown() #按下鼠標按鍵(左鍵)pyautogui.mouseUp() #釋放鼠標按鍵(左鍵)pyautogui.click() #向計算機發送虛擬的鼠標點擊(click()函數只是前面兩個函數調用的方便封裝) # 默認在當前光標位置,使用鼠標左鍵點擊pyautogui.click([x,y,button='left/right/middle']) #在(x,y)處點擊鼠標左鍵、右鍵、中鍵 #但不推薦使用這種方法,下面這種方法效果更好 #pyautogui.moveTo(x,y,duration=t) #pyautogui.click()pyautogui.doubleClick() #雙擊鼠標左鍵pyautogui.rightClick() #單擊鼠標右鍵pyautogui.middleClick() #單擊鼠標中鍵
(4)拖動
拖動:按住一個鍵不放,同時移動鼠標
pyautogui.dragTo(x,y[,duration=t) # 將鼠標拖動到指定位置 #x,y:x坐標,y坐標pyautogui.dragRel(x,y[,duration=t]) # 將鼠標拖動到相對當前位置的位置 #x,y:水平移動, 垂直移動
(5)滾動
pyautogui.scroll() #控制窗口上下滾動(滾動發生在鼠標的當前位置) #正數表示向上滾動,負數表示向下滾動, #滾動單位的大小需要具體嘗試
點擊鼠標的動作最好跟time.sleep使用,來控制點擊速度,不然太快不好掌握。最近我DEFORM要計算的DB文件太多了,為了趕時間,我想讓程序晚上也能計算。但我要睡覺啊,所以就寫了下面一個很簡單的例子。
import pyautogui as ptimport timei = 1pt.moveTo(422,141) #移動到第一個DB文件處time.sleep(2) #停頓2spt.click(button='left') #選中DB文件while i<11: #11個DB文件 pt.moveTo(756,69) #移到運算按鈕 time.sleep(2) #停頓2s pt.click(button='left') #點擊運算按鈕 pt.moveTo(950,545) #移到確定按鈕 pt.click(button='left') #點擊確定按鈕 time.sleep(1800) #等待DEFORM一個DB文件算完 pt.moveTo(422,141+i*21) #移到下一個DB time.sleep(2) pt.click(button='left') #點擊下一個DB i+=1
3 控制鍵盤
(1)輸入字符串
直接通過typewrite方法輸入字符串,這種方法不能輸入中文,不過可以通過切換成中文輸入法達到輸入中文的目的。
pyautogui.typewrite(s[,duration=t]) #向文本框發送字符串 #可選的duration參數在輸入單個字符之間添加短暫的時間暫停 #Attention:只能用于輸入英文
切換中文輸入法后輸入下面代碼,能打出"王"字,當然還要配合enter鍵使用。
pt.typewrite('wang')
(2)輸入鍵字符串
用來輸入Shift鍵、ESC鍵、箭頭鍵等不能通過字符文本來輸入的
pyautogui.typewrite([鍵盤鍵字符串]) #除了單個字符串,還可以向typewrite()函數傳遞鍵字符串的列表 #如 pyautogui.typewrite(['a','b','left','left','X','Y']) #按'a'鍵,'b'鍵,然后按左箭頭兩次,然后按'X'和'Y' #輸出結果為XYabpyautogui.keyDown() #根據傳入的鍵字符串,向計算機發送虛擬的按鍵(按下)pyautogui.keyUp() #根據傳入的鍵字符串,向計算機發送虛擬的釋放(釋放)pyautogui.press() #前面兩個函數的封裝,模擬完整的擊鍵(按下并釋放)
注意,輸入鍵盤字符串的時候括號里面的中括號不能少,不然就變成輸入字符串了,keyUp,keyDown,press方法是模擬按鍵盤的操作達到輸入字符。同樣,也可以通過切換中文輸入法來輸入中文。比如下面的代碼可以打出一個"玩"。
pt.keyDown('w')pt.keyDown('a')pt.keyDown('n')
只能一個一個拼音輸入,略顯麻煩!
完整鍵字符串:
鍵盤鍵字符串 含義'a','b','c','A','C','1','2','3', 單個字符的鍵'!','@','#'等'enter' 回車'esc' ESC鍵'shiftleft','shiftright' 左右Shift鍵'altleft','altright' 左右Alt鍵'ctrlleft','ctrlright' 左右Ctrl鍵'tab'(or '') Tab鍵'backspace','delete' Backspace鍵和Delete鍵'pageup','pagedown' Page Up 和Page Down鍵'home','end' Home鍵和End鍵'up','down','left','right' 上下左右箭頭鍵'f1','f2','f3'等 F1至F12鍵'volumemute','volumeup',volumedown' 靜音,放大音量和減小音量鍵'pause' 暫停鍵'capslock','numlock','scrolllock' Caps Lock,Num Lock和 Scroll Lock鍵'insert' Insert鍵'printscreen' Prtsc或Print Screen鍵'winleft','winright' 左右Win鍵(在windows上)'command' Command鍵(在OS X上)'option' Option鍵(在OS X上)
(3)快捷鍵組合:
pyautogui.hotkey('ctrl','c') #按住Ctrl鍵,然后按C鍵,然后釋放C鍵和Ctrl鍵 #相當于pyautogui.keyDown('ctrl')pyautogui.keyDown('c')pyautogui.keyUp('c')pyautogui.keyUp('ctrl')
總結
以上是生活随笔為你收集整理的pyautogui typewrite_解放双手:Pyautogui帮你work的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python通讯录运用的知识点_案例驱动
- 下一篇: micopython 18b20_[Mi