日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

Python基础之pyautogui模块(详细总结鼠标键盘操作)

發布時間:2023/12/1 综合教程 33 生活家
生活随笔 收集整理的這篇文章主要介紹了 Python基础之pyautogui模块(详细总结鼠标键盘操作) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Python基礎之鼠標操作

文章目錄

  • Python基礎之鼠標操作
    • 1. GUI 控制功能
      • 1.1 自動 防故障功能
      • 1.2 停頓功能
    • 2. 鼠標操作
      • 2.1 控制鼠標移動
      • 2.2 控制鼠標點擊
      • 2.3 控制鼠標拖動
      • 2.4 控制鼠標滾動
    • 3. 屏幕處理
      • 3.1 獲取屏幕截圖
      • 3.2 識別圖像
    • 4. 鍵盤輸入
      • 4.1 鍵盤輸入函數
      • 4.2 鍵盤特殊按鍵
      • 4.3 快捷鍵
    • 5. 提示信息框
      • 5.1 提示框/警告框
      • 5.2 選擇框
      • 5.3 密碼輸入
      • 5.4 普通輸入
    • 6. 實例
      • 6.1 鼠標控制 鼠標畫一個正方形
      • 6.2 獲取鼠標的實時位置
      • 6.3 獲取鼠標位置 與 所在位置的顏色
      • 6.4 自動點贊程序

1. GUI 控制功能

控制鼠標鍵盤使用的模塊為:pyautogui,這個模塊操作起鼠標鍵盤的時候,非常的迅速,而且如果該模塊控制了鼠標后,程序比較難關閉,這時我們有兩個方法專門針對以上的情況:

1.1 自動 防故障功能

pyautogui.FAILSAFE =False  

默認這項功能為True, 這項功能意味著:當鼠標的指針在屏幕的最坐上方,程序會報錯;目的是為了防止程序無法停止;

1.2 停頓功能

pyautogui.PAUSE = 1    

意味著所有pyautogui的指令都要暫停一秒;其他指令不會停頓;這樣做,可以防止鍵盤鼠標操作太快;

2. 鼠標操作

2.1 控制鼠標移動

1. 獲得屏幕分辨率

print(pyautogui.size())   # 返回所用顯示器的分辨率; 輸出:Size(width=1920, height=1080)
width,height = pyautogui.size()
print(width,height)  # 1920 1080

2. 移動鼠標

  • 移動到指定位置
pyautogui.moveTo(100,300,duration=1)   

將鼠標移動到指定的坐標;duration 的作用是設置移動時間,所有的gui函數都有這個參數,而且都是可選參數;

  • 按方向移動
pyautogui.moveRel(100,500,duration=4)   # 第一個參數是左右移動像素值,第二個是上下,

向右移動100px,向下移動500px, 這個過程持續 1 秒鐘;

3. 獲取鼠標位置

print(pyautogui.position())   # 得到當前鼠標位置;輸出:Point(x=200, y=800)

2.2 控制鼠標點擊

  • 單擊鼠標
# 點擊鼠標
pyautogui.click(10,10)   # 鼠標點擊指定位置,默認左鍵
pyautogui.click(10,10,button='left')  # 單擊左鍵
pyautogui.click(1000,300,button='right')  # 單擊右鍵
pyautogui.click(1000,300,button='middle')  # 單擊中間
  • 雙擊鼠標
pyautogui.doubleClick(10,10)  # 指定位置,雙擊左鍵
pyautogui.rightClick(10,10)   # 指定位置,雙擊右鍵
pyautogui.middleClick(10,10)  # 指定位置,雙擊中鍵
  • 點擊 & 釋放
pyautogui.mouseDown()   # 鼠標按下
pyautogui.mouseUp()    # 鼠標釋放

2.3 控制鼠標拖動

  • 拖動到指定位置
pyautogui.dragTo(100,300,duration=1)   

將鼠標拖動到指定的坐標;duration 的作用是設置移動時間,所有的gui函數都有這個參數,而且都是可選參數;

  • 按方向拖動
pyautogui.dragRel(100,500,duration=4)   # 第一個參數是左右移動像素值,第二個是上下,

向右拖動100px,向下拖動500px, 這個過程持續 1 秒鐘;

2.4 控制鼠標滾動

控制鼠標滾動的函數是scroll(), 傳入一個整數的參數,說明向上或向下滾動多少個單位;單位根據操作系統不同而不同;

pyautogui.scroll(300)  # 向上滾動300個單位;

3. 屏幕處理

3.1 獲取屏幕截圖

我們控制鼠標的操作,不能盲目的進行,所以我們需要監控屏幕上的內容,從而決定要不要進行對應的操作, pyautogui 提供了一個方法screenshot(),可以返回一個Pillow的image對象;

這里有三個常用函數:

im = pyautogui.screenshot():返回屏幕的截圖,是一個Pillow的image對象
im.getpixel((500, 500)):返回im對象上,(500,500)這一點像素的顏色,是一個RGB元組
pyautogui.pixelMatchesColor(500,500,(12,120,400)) :是一個對比函數,對比的是屏幕上(500,500)這一點像素的顏色,與所給的元素是否相同;

im = pyautogui.screenshot()
im.save('屏幕截圖.png')

保存屏幕截圖;

3.2 識別圖像

首先,我們需要先獲得一個屏幕快照,例如我們想要點贊,我們就先把大拇指的圖片保存下來;然后使用函數:locateOnScreen(‘zan.png’) ,如果可以找到圖片,則返回圖片的位置,如:Box(left=25, top=703, width=22, height=22);如果找不到圖片,則返回None;
如果,屏幕上有多處圖片可以匹配,則需要使用locateAllOnScreen(‘zan.png’) ,如果匹配到多個值,則返回一個list,參考如下:

import pyautogui
pyautogui.PAUSE = 1# 圖像識別(一個)
btm = pyautogui.locateOnScreen('zan.png')
print(btm)  # Box(left=1280, top=344, width=22, height=22)# 圖像識別(多個)
btm = pyautogui.locateAllOnScreen('zan.png')
print(list(btm))  # [Box(left=1280, top=344, width=22, height=22), Box(left=25, top=594, width=22, height=22)]

pyautogui.center((left, top, width, height)) 返回指定位置的中心點;這樣,我們就可以再配合鼠標操作點擊找到圖片的中心;參考實例:《4.4 自動點贊程序》

4. 鍵盤輸入

4.1 鍵盤輸入函數

pyautogui.keyDown() : 模擬按鍵按下;
pyautogui.keyUp() : 模擬按鍵釋放;
pyautogui.press() : # 就是調用keyDown() & keyUp(),模擬一次按鍵;
pyautogui.typewrite('this',0.5) : 第一參數是輸入內容,第二個參數是每個字符間的間隔時間;
pyautogui.typewrite(['T','h','i','s']):typewrite 還可以傳入單字母的列表;

舉例:

pyautogui.keyDown('shift')    # 按下shift
pyautogui.press('4')    # 按下 4
pyautogui.keyUp('shift')   # 釋放 shift

輸出: $ ;

pyautogui.typewrite('$$$$', 0.5)

緩慢的輸出:$$$$

4.2 鍵盤特殊按鍵

有時我們需要輸入一些特殊的按鍵,比如向左的箭頭,這些有相對應的鍵盤字符串表示,例如:

pyautogui.typewrite(['T','i','s','left','left','h',])   # 輸出:This

解釋:這里的left就是向左的箭頭;諸如此類的鍵盤字符串,還有很多,參考下表:

鍵盤字符串 說明
enter(或return 或 \n) 回車
esc ESC鍵
shiftleft, shiftright 左右SHIFT鍵
altleft, altright 左右ALT鍵
ctrlleft, ctrlright 左右CTRL鍵
tab (\t) TAB鍵
backspace, delete BACKSPACE 、DELETE鍵
pageup, pagedown PAGE UP 和 PAGE DOWN鍵
home, end HOME 和 END鍵
up, down, left,right 箭頭鍵
f1, f2, f3…. f12 F1…….F12鍵
volumemute, volumedown,volumeup 聲音變大變小靜音(有些鍵盤沒有)
pause PAUSE鍵,暫停鍵
capslock CAPS LOCK 鍵
numlock NUM LOCK 鍵
scrolllock SCROLLLOCK 鍵
insert INSERT鍵
printscreen PRINT SCREEN鍵
winleft, winright Win鍵(windows )
command command鍵(Mac OS X )
option option(Mac OS X)

4.3 快捷鍵

如果我們需要模擬復制的快捷鍵 ctrl + c ,如果用前面的方法,則代碼為:

pyautogui.keyDown('ctrl')
pyautogui.keyDown('c')
pyautogui.keyUp('c')
pyautogui.keyUp('ctrl')

快捷鍵的按鍵與釋放順序非常關鍵,這時我們可以使用 pyautogui.hotkey(),這個函數可以接受多個參數,按傳入順序按下,再按照相反順序釋放。上述快捷鍵 ctrl + c ,可以將代碼變為:

pyautogui.hotkey('ctrl','c')

5. 提示信息框

5.1 提示框/警告框

import pyautogui
a = pyautogui.alert(text='This is an alert box.', title='Test')
print(a)

輸出如下圖:點擊確定,返回值為‘OK’

5.2 選擇框

import pyautogui
a = pyautogui.confirm('選擇一項', buttons=['A', 'B', 'C'])
print(a)


輸出如下圖:點擊B選項,返回值為‘B’

5.3 密碼輸入

import pyautoguia = pyautogui.password('Enter password (text will be hidden)')
print(a)

輸出如下圖:輸入密碼,顯示為密文,點擊OK,返回值為剛剛輸入的值;

5.4 普通輸入

import pyautoguia = pyautogui.prompt('請輸入一個數字:')
print(a)


輸出如下圖:顯示為明文,點擊OK,返回值為剛剛輸入的值;

6. 實例

6.1 鼠標控制 鼠標畫一個正方形

for i in range(2):   # 畫正方形pyautogui.moveTo(200,200,duration=1)pyautogui.moveTo(200,400,duration=1)pyautogui.moveTo(400,400,duration=0.5)pyautogui.moveTo(400,200,duration=2)

6.2 獲取鼠標的實時位置

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# author:Zhang Kai time:import pyautogui
import timetry:while True:x,y = pyautogui.position()posi = 'x:' + str(x).rjust(4) + ' y:' + str(y).rjust(4)print('\r',posi,end='')time.sleep(0.5)except KeyboardInterrupt:print('已退出!')

顯示效果:

6.3 獲取鼠標位置 與 所在位置的顏色

import pyautogui
import timetry:while True:x,y = pyautogui.position()rgb = pyautogui.screenshot().getpixel((x,y))posi = 'x:' + str(x).rjust(4) + ' y:' + str(y).rjust(4) + '  RGB:' + str(rgb)print('\r',posi,end='')time.sleep(0.5)except KeyboardInterrupt:print('已退出!')

顯示效果:

6.4 自動點贊程序

我們需要將所有的文章點贊,本頁上的點贊完成后,就滾動鼠標,把新加載的文章也全部點贊;


代碼如下:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# author:Zhang Kai import pyautogui
import timedef zan():time.sleep(0.5)    # 等待 0.5 秒left, top, width, height = pyautogui.locateOnScreen('zan.png')   # 尋找 點贊圖片;center = pyautogui.center((left, top, width, height))    # 尋找 圖片的中心pyautogui.click(center)    # 點擊print('點贊成功!')while True:if pyautogui.locateOnScreen('zan.png'):zan()   # 調用點贊函數else:pyautogui.scroll(-500)    # 本頁沒有圖片后,滾動鼠標;print('沒有找到目標,屏幕下滾~')

運行后,會逐個進行點贊:

Pycharm中的輸入如下:

總結

以上是生活随笔為你收集整理的Python基础之pyautogui模块(详细总结鼠标键盘操作)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。