IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 半个小时带你快速上手【PyAutoGui】 -> 正文阅读

[Python知识库]半个小时带你快速上手【PyAutoGui】

PyAotuGui 自动化


官方介绍:

? PyAutoGUI 是一个面向人类的跨平台 GUI 自动化 Python 模块,用于以编程方式控制鼠标和键盘

安装:

pip install pyautogui

屏幕坐标系
在这里插入图片描述

1. 环境搭建

1.1 安装 Python

Python 的安装我之前写过这里就不再写了,搭建Python开发环境

1.2 PyCharm 安装与配置


Pycharm的安装:Pycharm安装与配置

2. 通用函数


2.1 获取屏幕分辨率

描述:以两个整数元组的形式返回屏幕的宽度和高度,以像素位单位 (width, height).

size = pyautogui.size()
print(size)
print(size.width,size.height)
>>> Size(width=1920, height=1080)
	1920 1080

2.2 获取鼠标当前的位置

描述:以两个整数元组的形式返回鼠标光标的当前xy坐标,参数可选(x,y)默认为 None 如果不为 None 则会覆盖 x,y.

position = pyautogui.position()
print(position)
>>> Point(x=1486, y=320)
position = pyautogui.position(555)
positionl = pyautogui.position(555, 555)
print(position)
print(positionl)

2.3 判断坐标是否在屏幕范围内

描述:返回给定 x,y 坐标是否在主屏幕上,参数是必须的,我的分辨率是1920*1080这里最高是1919 * 1079 所以是在这个范围内.

onscreen = pyautogui.onScreen(500, 100)
print(onscreen)
>>> True

3. 鼠标控制


3.1 鼠标移动


1.moveTo( )

语法:moveTo(x,y)

描述:将鼠标光标移动到指定的坐标上, 参数可以是整数也可以是浮点数.

参数:参数是可选的如果没有,则会使用当前坐标,如果坐标大于当前屏幕的分辨率则光标会跳出屏幕外.

import pyautogui
# 将鼠标光标移动至 X 为500 Y 为800的位置上
# duration:持续时间
pyautogui.moveTo(500, 800, duration=3)

2.move( ) & moveRel( )

语法:moveRel(x,y) & move(x,y)

描述:相对移动,相对于当前坐标移动到指定位置,moveRel 的作用与 move 相同.

import pyautogui
# 相对于当前位置向下移动 800
# duration:持续时间
pyautogui.move(0, 800, duration=3)
print(moveTo)

?

3.2 鼠标拖拽


1.dragTo( )

语法:dragTo(x,y)

注意:如果拖拽不设置持续时间是没有效果的.

描述:执行鼠标拖动(按住按钮时移动鼠标)到指定的坐标上,参数可以是整数也可以是浮点数.

import pyautogui
# 将鼠标移动至 40*136 位置上
pyautogui.moveTo(40, 136)
# 在当前位置键鼠标拖动至 1854*442 位置上
pyautogui.dragTo(1854, 442, duration=5)

2.drag( )

语法:drag(x,y)

描述:相对于当前位置执行鼠标拖动.

注意:如果拖拽不设置持续时间是没有效果的.

import pyautogui
# 相对于当前位置执行鼠标拖动
pyautogui.drag(1854, 442, duration=1)

3.3 鼠标点击


通用参数

clicks:点击次数

interval:点击间隔时间,如果需要双击操作则间隔不宜太长

注意:鼠标点击方法与鼠标移动结合了,可以直接传递 x,y 控制鼠标移动.

1. click 鼠标点击

import pyautogui
# 将鼠标移动至 43*330 然后点击
pyautogui.click(43, 330)

2. leftClick 鼠标左键点击一次

import pyautogui
pyautogui.moveTo(50, 24, duration=1)
pyautogui.leftClick()

3. middleClick 鼠标中键点击一次

import pyautogui
pyautogui.moveTo(50, 24, duration=1)
pyautogui.middleClick()

4. rightclick 鼠标右键点击一次

import pyautogui
pyautogui.moveTo(50, 24, duration=1)
pyautogui.rightClick()

5. doubleClick 鼠标点击俩次

import pyautogui
pyautogui.moveTo(50, 24, duration=1)
pyautogui.doubleClick()

6. tripleClick 鼠标点击三次

import pyautogui
pyautogui.moveTo(50, 24, duration=1)
pyautogui.tripleClick()

3.4 鼠标按下与释放


官方描述:

? 鼠标点击和拖动由按下鼠标按钮与释放鼠标按钮组成,如果要分别执行这里操作,请调用 mouseDown () 和 mouseUp ()函数,他们有相同的 x,y 和按钮.

1. mouseDown( )

描述:执行按下鼠标按钮.

语法:mouseDown(x, y)

import pyautogui
# 将鼠标移动至 43*330 执行鼠标按下操作
pyautogui.mouseDown(43, 330)

2. mouseUp( )

语法:mouseUp(x,y)

描述:释放鼠标,我这里写的例子是拖动桌面快捷方式的代码.

import pyautogui
# 将鼠标移动至 43*330 并执行鼠标按下
pyautogui.mouseDown(43, 330)
# 在鼠标按下的时候移动鼠标至 485*354
pyautogui.moveTo(485, 354)
# 释放鼠标
pyautogui.mouseUp()

3.5 鼠标滚动


官方描述:

? 可以通过调用 scroll ()函数并传递一个“ click”的整数次数来模拟鼠标滚轮。“ click”中的滚动次数在不同平台之间有所不同。可选地,可以为 x 和 y 关键字参数传递整数,以便在执行滚动之前移动鼠标光标.

1. scroll( )

语法:scroll( number )

描述:鼠标垂直滚动,如果参数为正数则向上滚动,为负数则向下滚动.

import pyautogui
pyautogui.scroll(500)

2. vscroll( )

描述:跟 scroll() 一样.

语法:vscroll( number )

import pyautogui
pyautogui.vscroll(-500)

3. hscroll( )

语法:vscroll( x,y,number )

描述:鼠标水平滚动,该方法只作用于 Linux / OS x,鼠标滚动是可以传递位置参数的但是由于不支持 win 我就没说.

import pyautogui
pyautogui.hscroll(10)

4. 键盘操作


4.1 键盘输入


1. write( )

语法:write(str,[interval])

注意:此方法如果需要实现按下按键的操作,则需要以列表的形式传参.

描述:write( ) 方法用于批量输入字符,你可以输入那些字符?参考:键盘键.

import pyautogui
# 键入ABC...123字符
# interval:键入字符的间隔时间
pyautogui.write('ABCdefg!@#$\n\t123', interval=0.5)
import pyautogui
# 按下 f1
pyautogui.write(['f1'], interval=0.5)

2. typewrite( )

描述:此方法跟 write( ) 是一样的.

import pyautogui
pyautogui.typewrite(['f1'], interval=0.5)

4.2 键盘按键


1. press( )

语法:press( key )

注意:此方法的按键操作为按下并且释放.

参数:注意这里 a参数不是按下的间隔时间而是重复按键时的重复间隔,presses 为重复前面的字符次数默认为 1 .

import pyautogui
# 按下空格
pyautogui.press('enter')
# 按下 f1
pyautogui.press('f1')
import pyautogui
# 重复五次键入A的动作,每次键入隔着2秒
pyautogui.press(['a'], presses=5, interval=2)

2. keyDown( ) & keyUp

描述:利用好这俩个方法,可以实现很多快捷键的操作.

注意:keyDown 的按键操作为按下但不释放,keyUp 的按键操作为 释放已按下的键盘按键.

pyautogui.keyDown('shift')
pyautogui.press('left')    
pyautogui.press('left')    
pyautogui.press('left')    
pyautogui.keyUp('shift')

4.3 热键操作


官方描述:

? 为了使按热键或键盘快捷键方便,hotkey() 可以通过几个键字符串按下顺序,然后按相反的顺序释放.

1. hotkey()

描述:快速按下热键.

import pyautogui
# win 中显示桌面
pyautogui.hotkey('win', 'd')

5. 屏幕截图


5.1 屏幕截图


screenshot( )

语法:screenshot( Image-file,[area] )

描述:默认截取全屏,你可以传递区域左侧、顶部、宽度和高度的四个整数元组来捕获.

import pyautogui
# 不传递指定区域默认截取全屏
pyautogui.screenshot('1.jpg')
import pyautogui
# 图像位置可以继续使用我们的 position 来获取
box = (222, 666, 222, 222)
pyautogui.screenshot('2.jpg', box)

5.2 图片定位


1. locateOnScreen( )

语法:locateOnScreen( Image-file )

描述:locateOnScreen 可以帮助你快速的获取指定图片在屏幕中的位置,返回一个由四个整数组成的元组(left,top,width,height)

import pyautogui
# 例如我查找我桌面上的一个图标
positions = pyautogui.locateOnScreen('./img/1.png')
print(positions)
>>> Box(left=0, top=5, width=94, height=67)

2. center( )

语法:center(coordinates)’

描述:该方法用于配合 locateOnScreen 在 locateOnScreen 获取到图像在屏幕中的位置时 center 可以帮助你快速计算出该区域的中心点返回 x,y 坐标.

import pyautogui

positions = pyautogui.locateOnScreen('./img/1.png')
centers = pyautogui.center(positions)
print(centers)
>>> Point(x=47, y=38)

locateCenterOnScreen( )

描述:此方法是 locateOnScreen 与 center 相结合的方法,更为方便.

import pyautogui
# 传递一个图像
positions = pyautogui.locateCenterOnScreen('./img/1.png')
print(positions)
  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-11-20 18:21:00  更:2021-11-20 18:22:39 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 0:38:37-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码