日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

Python调用PyAutoGUI模块

發(fā)布時間:2025/5/22 66 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python调用PyAutoGUI模块 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

目錄

  • GUI自動化工具
    • 鼠標
      • 鼠標移動
      • 鼠標拖動
      • 鼠標 補間/緩動
      • 鼠標點擊
      • 鼠標的滾動功能
    • 鍵盤

GUI自動化工具

PyAutoGUI可在Windows / Mac / Linux和Python 2&3上運行。
pip install pyautogui

import pyautogui

注意:在運行PyAutoGUI庫時請加入以下2行代碼,防止程序失控,進行補救措施

故障保護機制
在每次PyAutoGUI調(diào)用之后設置2.5秒的暫停:

pyautogui.PAUSE = 2.5 # 為所有的PyAutoGUI函數(shù)增加延遲。默認延遲時間是0.1秒。

當故障安全模式為時True,將鼠標移到左上角將會彈出pyautogui.FailSafeException,這可能會中止當前運行的程序:

pyautogui.FAILSAFE = True # 保護措施,避免失控

鼠標

  • size() 方法
  • pyautogui.size() # 返回屏幕寬高像素數(shù)的元組

    如果屏幕分辨率為1920*1080,那么左上角的坐標為(0,0)
    右下角的坐標是(1919,1079)(因為坐標始于0,而不是1)
    X坐標從左側(cè)的0開始,向右增加。
    Y坐標從頂部的0開始,向下增加。

  • position() 方法
  • pyautogui.position() # 返回鼠標光標的當前X和Y坐標
  • onScreen() 方法
  • pyautogui.onScreen(x, y) # 檢查XY坐標是否在屏幕上 返回True 和 False

    鼠標移動

  • moveTo() 方法
  • pyautogui.moveTo(x, y) # 將鼠標光標移動到傳遞的X和Y整數(shù)坐標 pyautogui.moveTo(None, y) # None可以為坐標傳遞該值,以表示“當前鼠標光標位置 pyautogui.moveTo(x, None)

    例如

    pyautogui.moveTo(100, 200) # 鼠標移動到x軸100像素,y軸200像素的位置 pyautogui.moveTo(None, 300) # 鼠標移動到x軸100像素,y軸300像素的位置 pyautogui.moveTo(400, None) # 鼠標移動到x軸400像素,y軸300像素的位置 pyautogui.moveTo(x, y, [duration = t]) # 在給定時間內(nèi)將鼠標移動到屏幕指定位置 duration(以秒為單位)

    x,y是目標位置的橫縱坐標,duration指定鼠標光標移動到目標位置所需要的秒數(shù),
    t可以為整數(shù)或浮點數(shù),省略duration參數(shù)表示立即將光標移動到指定位置
    (在PyAutoGUI函數(shù)中,所有的duration關(guān)鍵字參數(shù)都是可選的)
    如果持續(xù)時間小于pyautogui.MINIMUM_DURATION該運動將是即時的。默認pyautogui.MINIMUM_DURATION值為0.1。

  • move()方法
  • pyautogui.move(x, y) # 將鼠標光標相對于其當前位置移動幾個像素

    這里的x,y不再是目標位置的坐標,而是偏移量
    例如:

    pyautogui.moveTo(100, 200) # 鼠標移動到x軸100像素,y軸200像素的位置 pyautogui.move(100,0) # 表示光標相對于當前所在位置(100, 200)向右移動100個像素(200, 200)

    鼠標拖動

  • dragTo() 方法
  • pyautogui.dragTo(x, y, [duration=t]) #將鼠標拖動到指定位置

    PyAutoGUI的dragTo()和drag()功能也有類似的參數(shù)作為moveTo()和move()功能。此外,他們有一個button可以被設置為關(guān)鍵字’left’,‘middle’,'right’在拖動時按住該鼠標鍵不放。

    pyautogui.dragTo(x, y, [duration=t], button='left') # 按住鼠標左鍵,將鼠標拖動到指定位置 pyautogui.dragTo(x, y, [duration=t], button='middle') # 按住鼠標中鍵,將鼠標拖動到指定位置 pyautogui.dragTo(x, y, [duration=t], button='right') # 按住鼠標右鍵,將鼠標拖動到指定位置
  • drag()方法
  • pyautogui.drag(x, y, [duration=t]) # 將鼠標光標相對于其當前位置移動幾個像素

    這里的x,y不再是目標位置的坐標,而是偏移量
    使用方法和dragTo()一樣

    鼠標 補間/緩動

    補間或緩動功能指示鼠標移至目的地時的進度。通常,當在一段時間內(nèi)移動鼠標時,鼠標將以恒定的速度沿直線直接移向目標。這稱為線性補間或線性緩動函數(shù)。

    PyAutoGUI在pyautogui模塊中還有其他補間功能。
    moveTo(),move(),dragTo()和drag()方法都可以使用該功能,可通過傳遞第四個參數(shù)來使鼠標光標以指定的線性函數(shù)進行移動。
    總持續(xù)時間仍與傳遞給函數(shù)的參數(shù)相同。

    pyautogui.easeInQuad:開始緩慢移動,然后朝著目標加快。
    pyautogui.easeOutQuad:鼠標指針開始移動速度快,但速度逐漸減慢
    pyautogui.easeInOutQuad:開始和結(jié)束快,中間慢
    pyautogui.easeOutQuad是相反的:把鼠標指針開始移動速度快,但速度減慢,因為它接近目的地。
    pyautogui.easeOutElastic將沖過目標進行“橡皮筋”式來回移動直到它穩(wěn)定在目的地。

    pyautogui.moveTo(x, y, [duration=t], pyautogui.easeInQuad) # 開始緩慢移動,然后朝著目標加快 pyautogui.moveTo(x, y, [duration=t], pyautogui.easeOutQuad) # 鼠標指針開始移動速度快,但速度逐漸減慢 pyautogui.moveTo(x, y, [duration=t], pyautogui.easeInOutQuad) # 開始和結(jié)束快,中間慢 pyautogui.moveTo(x, y, [duration=t], pyautogui.easeInBounce) # 鼠標移動到目標位置進行反彈 pyautogui.moveTo(x, y, [duration=t], pyautogui.easeInElastic) # 將沖過目標進行“橡皮筋”式來回移動直到它穩(wěn)定在目的地

    這些補間功能是從Al Sweigart的PyTweening模塊復制的:
    https://github.com/asweigart/pytweening
    不必安裝此模塊即可使用補間功能。

    如果要創(chuàng)建自己的補間函數(shù),請定義一個函數(shù),該函數(shù)在0.0(代表鼠標移動的起點)和1.0(代表鼠標移動的終點)之間使用單個float參數(shù),并在0.0和之間返回一個float值1.0。

    鼠標點擊

    click() 、rightClick() 、middleClick()、 doubleClick()、tripleClick()均可傳遞以下參數(shù):
    x和y:將鼠標移動到目標區(qū)域
    duration:鼠標移動目標位置的時間
    button:要指定不同的鼠標鍵點擊,‘left’ 左鍵,'middle’中鍵, 'right’右鍵
    clicks:要進行多次單擊,請將整數(shù)傳遞給clicks關(guān)鍵字參數(shù)
    interval:指定點擊之間的暫停量(以秒為單位)

  • click() 方法
  • pyautogui.click() # 默認在當前光標位置,使用鼠標左鍵點擊

    moveTo()與click() 在點擊之前合并調(diào)用,可以為click()傳遞x, y參數(shù):

    pyautogui.click(x, y) # 移動到目標位置,使用鼠標左鍵點擊

    要指定不同的鼠標鍵點擊,傳遞’left’,‘right’,'middle’等參數(shù):

    pyautogui.click(x, y, [button='left/right/middle'])

    要進行多次點擊,請將整數(shù)傳遞給clicks關(guān)鍵字參數(shù)。

    pyautogui.click(clicks=2) # 連續(xù)點擊2次pyautogui.click(clicks=2) # 連續(xù)點擊3次

    interval關(guān)鍵字參數(shù),是以指定兩次點擊之間的暫停時間(以秒為單位)

    pyautogui.click(clicks=2, interval=0.25) # 連續(xù)點擊2次,兩次點擊之間的暫停時間0.25秒

    綜合使用

    pyautogui.click(x=100, y=200, duration=2, clicks=2, interval=0.25, button='right')# 移動到x軸100像素 y軸200像素的位置,移動時間為2秒# 進行右鍵點擊2次,每次點擊間隔時間0.25秒
  • rightClick() 方法
  • pyautogui.rightClick() # 默認在當前光標位置,使用鼠標右鍵點擊
  • middleClick() 方法
  • pyautogui.middleClick() # 默認在當前光標位置,使用鼠標中鍵點擊
  • doubleClick() 方法
  • pyautogui.doubleClick() # 默認在當前光標位置,雙擊鼠標左鍵
  • tripleClick() 方法
  • pyautogui.tripleClick() # 默認在當前光標位置,鼠標左鍵點擊三次
  • mouseDown()和mouseUp()方法
  • pyautogui.mouseDown() # 按下鼠標左鍵 pyautogui.mouseUp() # 釋放鼠標左鍵

    鼠標單擊和拖動包括按下鼠標按鈕并向上釋放鼠標按鈕。
    如果要單獨執(zhí)行這些操作,請調(diào)用mouseDown()和mouseUp()方法。

    例如

    pyautogui.mouseDown(button='left', x=100, y=200, duration=2) # 先移動到目標位置按下鼠標左鍵(開始) pyautogui.mouseUp(button='left', x=300, y=400, duration=2) # 移動到目標位置后釋放鼠標左鍵(結(jié)束)

    此方法是將 dragTo()方法的拖動效果 拆開使用。可控制鼠標的點擊和釋放效果。

    鼠標的滾動功能

    可以通過調(diào)用scroll()方法并傳遞整數(shù)來滾動鼠標滾輪。

    pyautogui.scroll(50) # 控制窗口上下滾動(滾動發(fā)生在鼠標的當前位置)填入正數(shù)為向上滾動 pyautogui.scroll(-50) # 控制窗口上下滾動(滾動發(fā)生在鼠標的當前位置)填入負數(shù)為向下滾動

    在不同平臺上,滾動量會有所不同。(可選)可以傳遞x和y參數(shù),以在執(zhí)行滾動之前移動鼠標光標。
    例如

    pyautogui.scroll(10, x=100, y=200) # 移動到目標位置,滾輪向上滾動

    在OS X和Linux平臺上,PyAutoGUI也可以通過調(diào)用hscroll()函數(shù)執(zhí)行水平滾動。

    pyautogui.hscroll(10) # 向右滾動 pyautogui.hscroll(-10) # 向左滾動

    鍵盤

  • typewrite() 方法
    typewrite() 方法 模擬鍵盤輸
  • pyautogui.typewrite('Hello world!') # 從鍵盤輸入Hello world(向文本框發(fā)送字符串)

    要在按下每個字符鍵之間添加延遲間隔,請為interval關(guān)鍵字參數(shù)傳遞一個int或float值。

    pyautogui.typewrite('Hello world!', interval=0.25) # 從鍵盤輸入Hello world,每隔0.25秒輸入一個字符

    除了單個字符串,還可以向typewrite()函數(shù)傳遞鍵字符串的列表
    例如:

    pyautogui.typewrite(['V','V','left','left','c','a','t']) # 按'V'鍵,'V'鍵,然后按左箭頭兩次,然后按'c'、'a'、't'# 輸出結(jié)果為catVV

    typewrite()只能按下單字符鍵,無法按Shift或ctrl等組合鍵。
    注意:只能輸入英文

  • press()方法
  • pyautogui.press('enter') # 按下回車鍵(按下并釋放)pyautogui.press('left') # 按下左鍵 (按下并釋放)

    還可以將字符串列表傳遞給press()
    例如

    pyautogui.press(['left', 'left', 'left'])

    利用press()方法可以實現(xiàn)中文輸入
    例如

    pyautogui.press('shift') # 切換輸入法的中英文 pyautogui.press(['n', 'i'], interval=0.5) # press 可以對單個字符或者列表進行操作 pyautogui.press(['h', 'a', 'o'], interval=0.5) pyautogui.press(['s', 'h', 'i'], interval=0.5) pyautogui.press(['j', 'i', 'e'], interval=0.5) pyautogui.press(' ')
  • keyDown()和 keyUp()方法
    press()方法實際上只是keyDown()和keyUp()函數(shù)的包裝,它們模擬按下一個鍵然后釋放它。
    例如:
  • pyautogui.keyDown('shift') # 按下shift鍵(不進行釋放) pyautogui.press('left') # 按左箭頭鍵 (按下后釋放) pyautogui.press('left') # 按左箭頭鍵 (按下后釋放) pyautogui.press('left') # 按左箭頭鍵 (按下后釋放) pyautogui.keyUp('shift') # 釋放shift鍵(進行釋放)

    總結(jié)
    pyautogui.keyDown() #根據(jù)傳入的鍵字符串,向計算機發(fā)送虛擬的按鍵(按下)
    pyautogui.keyUp() #根據(jù)傳入的鍵字符串,向計算機發(fā)送虛擬的釋放(釋放)
    pyautogui.press() #前面兩個方法的封裝,模擬完整的擊鍵(按下并釋放)

  • hotkey()方法
    為了方便快捷地按下熱鍵或鍵盤快捷鍵,hotkey()可以傳遞幾個鍵的字符串,這些字符串將按順序按下,然后以相反的順序釋放。
    例如:
  • pyautogui.hotkey('ctrl', 'shift', 'esc')# 相當于這段代碼pyautogui.keyDown('ctrl')pyautogui.keyDown('shift')pyautogui.keyDown('esc')pyautogui.keyUp('esc')pyautogui.keyUp('shift')pyautogui.keyUp('ctrl')

    例如:

    pyautogui.hotkey('ctrl','c')# 相當于pyautogui.keyDown('ctrl')pyautogui.keyDown('c')pyautogui.keyUp('c')pyautogui.keyUp('ctrl') pyautogui.hotkey('ctrl','v')# 相當于pyautogui.keyDown('ctrl')pyautogui.keyDown('v')pyautogui.keyUp('v')pyautogui.keyUp('ctrl')

    pyautogui.hotkey() # 接收多個字符串參數(shù),順序按下,再按相反的順序釋放

  • 通過對以下是有效字符串press(),keyDown(),keyUp(),和hotkey()功能:

    [’\t’, ‘\n’, ‘\r’, ’ ‘, ‘!’, ‘"’, ‘#’, ‘$’, ‘%’, ‘&’, "’", ‘(’,
    ‘)’, ‘*’, ‘+’, ‘,’, ‘-’, ‘.’, ‘/’, ‘0’, ‘1’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’,
    ‘8’, ‘9’, ‘:’, ‘;’, ‘<’, ‘=’, ‘>’, ‘?’, ‘@’, ‘[’, ‘\’, ‘]’, ‘^’, ‘_’, ‘`’,
    ‘a(chǎn)’, ‘b’, ‘c’, ‘d’, ‘e’,‘f’, ‘g’, ‘h’, ‘i’, ‘j’, ‘k’, ‘l’, ‘m’, ‘n’, ‘o’,
    ‘p’, ‘q’, ‘r’, ‘s’, ‘t’, ‘u’, ‘v’, ‘w’, ‘x’, ‘y’, ‘z’, ‘{’, ‘|’, ‘}’, ‘~’,
    ‘a(chǎn)ccept’, ‘a(chǎn)dd’, ‘a(chǎn)lt’, ‘a(chǎn)ltleft’, ‘a(chǎn)ltright’, ‘a(chǎn)pps’, ‘backspace’,
    ‘browserback’, ‘browserfavorites’, ‘browserforward’, ‘browserhome’,
    ‘browserrefresh’, ‘browsersearch’, ‘browserstop’, ‘capslock’, ‘clear’,
    ‘convert’, ‘ctrl’, ‘ctrlleft’, ‘ctrlright’, ‘decimal’, ‘del’, ‘delete’,
    ‘divide’, ‘down’, ‘end’, ‘enter’, ‘esc’, ‘escape’, ‘execute’, ‘f1’, ‘f10’,
    ‘f11’, ‘f12’, ‘f13’, ‘f14’, ‘f15’, ‘f16’, ‘f17’, ‘f18’, ‘f19’, ‘f2’, ‘f20’,
    ‘f21’, ‘f22’, ‘f23’, ‘f24’, ‘f3’, ‘f4’, ‘f5’, ‘f6’, ‘f7’, ‘f8’, ‘f9’,
    ‘final’, ‘fn’, ‘hanguel’, ‘hangul’, ‘hanja’, ‘help’, ‘home’, ‘insert’, ‘junja’,
    ‘kana’, ‘kanji’, ‘launchapp1’, ‘launchapp2’, ‘launchmail’,
    ‘launchmediaselect’, ‘left’, ‘modechange’, ‘multiply’, ‘nexttrack’,
    ‘nonconvert’, ‘num0’, ‘num1’, ‘num2’, ‘num3’, ‘num4’, ‘num5’, ‘num6’,
    ‘num7’, ‘num8’, ‘num9’, ‘numlock’, ‘pagedown’, ‘pageup’, ‘pause’, ‘pgdn’,
    ‘pgup’, ‘playpause’, ‘prevtrack’, ‘print’, ‘printscreen’, ‘prntscrn’,
    ‘prtsc’, ‘prtscr’, ‘return’, ‘right’, ‘scrolllock’, ‘select’, ‘separator’,
    ‘shift’, ‘shiftleft’, ‘shiftright’, ‘sleep’, ‘space’, ‘stop’, ‘subtract’, ‘tab’,
    ‘up’, ‘volumedown’, ‘volumemute’, ‘volumeup’, ‘win’, ‘winleft’, ‘winright’, ‘yen’,
    ‘command’, ‘option’, ‘optionleft’, ‘optionright’]

  • 完整的鍵盤鍵字符串如下:

  • 鍵盤鍵字符串含義
    ‘a(chǎn)’,‘b’,‘c’,‘A’,‘C’,‘1’,‘2’,‘3’,’!’,’@’,’#'等單個字符的鍵
    ‘enter’回車
    ‘esc’ESC鍵
    ‘shiftleft’,‘shiftright’左右Shift鍵
    ‘a(chǎn)ltleft’,‘a(chǎn)ltright’左右Alt鍵
    ‘ctrlleft’,‘ctrlright’左右Ctrl鍵
    ‘tab’(or ‘\t’)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上)

    總結(jié)

    以上是生活随笔為你收集整理的Python调用PyAutoGUI模块的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。