日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

python教程之利用pyautogui圖形自動化擊敗重復性辦公任務_python

作者:貓先生的早茶 ? 更新時間: 2022-05-25 編程語言

引言

pyautogui一個神奇的圖像自動化庫,學會之后無所不能。上能掛機刷寶箱,下能自動寫文檔。(>人<;)讓我裝個逼,別錘我,謝謝!

安裝

這個pyautogui在win10上的安裝挺坑的,當初第一次安裝時出現了好幾次錯誤(┬┬﹏┬┬)

安裝命令如下:

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyautogui

導入模塊

在安裝好這個模塊后我們還需要在程序的開頭加上如下代碼導入該模塊

import pyautogui

鼠標操作

講鼠標操作前,我們提個問題,如何確認電腦上屏幕上某個圖標的位置?

答:是通過圖標的左上角的坐標位置進行確認的。

如圖所示,我們可以看看出是以屏幕的左上角作為起始點,進行確認屏幕中的位置。細心的小伙伴可能會發現,這坐標的走向類似于數學坐標系中的第四象限。沒錯,不過Y軸的數值類似于第四象限的Y軸的絕對值。也就是說Y的值越大,在屏幕中的為位置就越向下。說明如果我想讓鼠標點擊某個位置,必須要先獲取該位置的坐標值。

1、獲取鼠標位置

所以我們的第一條命令就是獲取鼠標當前的位置。

x,y = pyautogui.position()

我們來打印下當前的位置

print ("當前鼠標的X軸的位置為:{},Y軸的位置為:{}".format(x,y))

輸出結果如下:

當前鼠標的X軸的位置為:333,Y軸的位置為:327

2、獲取屏幕分辨率

如何獲取屏幕的分辨率呢?也就是最大的X和Y的值

x,y = pyautogui.size()

打印屏幕的分辨率

print ("當前屏幕的分辨率是{}*{}".format(x,y))

輸出結果:

當前屏幕的分辨率是1536*864

3、移動鼠標

比如說,電腦桌面上的火狐瀏覽器的位置是(100,100).我如何將鼠標移動到這個位置呢?

pyautogui.moveTo(x=300,y=300,duration=0.25)

duration類似于移動時間或移動速度,省略后則是瞬間移動到指定的位置

4、單擊鼠標

如何讓鼠標左鍵點擊屏幕中(100,100)的位置呢?

pyautogui.click(x=100,y=150,button='left')

button=‘left’相當于鼠標左鍵,button=‘right’相當于鼠標右鍵。當不帶button參數時,默認為左鍵。

5、雙擊鼠標

如何雙擊鼠標呢?

pyautogui.doubleClick(x=100,y=150,button="left")

button=‘left’相當于鼠標左鍵,button=‘right’相當于鼠標右鍵。當不帶button參數時,默認為左鍵。

6、拖拽鼠標

如何實現拖拽鼠標?

pyautogui.dragTo(x,y,duration=0.25)

duration類似于移動時間或移動速度,省略后則是瞬間移動到指定的位置

鍵盤操作

在講鍵盤操作之間,先展示一張從AB教程網盜來的按鍵映射表

1、發送組合鍵

pyautogui.hotkey('win', 'r')

發送的按鍵之間使用【,】逗號隔開。

2、輸入內容

pyautogui.typewrite(message="hello world",interval=0.25)

message后面跟要輸入的內容,interval用于設置輸入的速度

高級操作

pyautogui有內置的截圖功能,可以使用screenshot方法進行截圖,然后可以操作截圖,進行確認圖片位置或者指定坐標的顏色等。

1、獲取坐標點的像素

img = pyautogui.screenshot()
color = img.getpixel((100,100))

執行結果:

該坐標的像素點的顏色是:(255, 255, 255)

返回的是三原色值。

2、獲取圖片的位置

x,y,width,height =  pyautogui.locateOnScreen('a.png')

括號中傳遞的是圖標文件的路徑

執行:

print ("該圖標在屏幕中的位置是:X={},Y={},寬{}像素,高{}像素".format(x,y,width,height))

結果:

該圖標在屏幕中的位置是:X=9,Y=741,寬81像素,高95像素

3、獲取圖標的中心點

x, y = pyautogui.center((9,741,81,95))

括號中分別傳遞,圖片的X軸,Y軸,寬,長

執行命令:

x,y = pyautogui.center((9,741,81,95))

執行結果:

該圖標的中心點是:X=49,Y=788

教學代碼

# -*- coding:utf-8 -*-
#作者:貓先生的早茶
#時間:2019年5月26日
import pyautogui

"""獲取鼠標當前的坐標位置"""
x,y = pyautogui.position()

print ("當前鼠標的X軸的位置為:{},Y軸的位置為:{}".format(x,y))

"""獲取屏幕分辨率"""
x,y = pyautogui.size()
print ("當前屏幕的分辨率是{}*{}".format(x,y))

"""移動鼠標到指定位置"""
pyautogui.moveTo(x=300,y=300,duration=0.25)

"""點擊鼠標"""
pyautogui.click(x=100,y=150,button='right')

"""雙擊鼠標"""
pyautogui.doubleClick(x=100,y=150,button="left")

"""發送組合鍵"""
pyautogui.hotkey('win', 'r')

"""輸入內容"""
pyautogui.typewrite(message="hello world",interval=0.25)

"""獲取指定坐標的顏色"""
img = pyautogui.screenshot()
color = img.getpixel((100,100))
print ("該坐標的像素點的顏色是:{}".format(color))

"""獲取圖標的位置"""
x,y,width,height =  pyautogui.locateOnScreen('a.png')
print ("該圖標在屏幕中的位置是:X={},Y={},寬{}像素,高{}像素".format(x,y,width,height))

"""獲取中心點"""
x,y = pyautogui.center((9,741,81,95))
print ("該圖標的中心點是:X={},Y={}".format(x,y))

總結

原文鏈接:https://blog.csdn.net/qq_43017750/article/details/90575240

欄目分類
最近更新