python自动脚本的pyautogui入门学习


Posted in Python onApril 01, 2020

本文介绍了pyautogui入门学习,分享给大家,也给自己留个笔记

安装

pip install pyautogui

学习使用

加载模块

import pyautogui

获取信息类

电脑屏幕的左上角是位置(0,0),向右X坐标增加,向下Y坐标增加

# 获取屏幕尺寸
screenWidth, screenHeight = pyautogui.size()

# 获取鼠标当前位置
currentMouseX, currentMouseY = pyautogui.position()

进行操作类

鼠标

# 鼠标移动到屏幕中心
pyautogui.moveTo(screenWidth / 2, screenHeight / 2)
# 将鼠标移动到固定位置
pyautogui.moveTo(100, 100)
# 用“1秒”的时间移动到固定位置
pyautogui.moveTo(100, 100, duration=1)
# 将鼠标移动到相对当前“下方100”的位置
pyautogui.moveRel(0, 100) 


# 鼠标左键拖拽到屏幕“100,200”的位置
pyautogui.dragTo(100, 200, button='left') 
# 鼠标左键用“2秒”拖拽到屏幕“300,400”的位置
pyautogui.dragTo(300, 400, 2, button='left') 
# 鼠标左键用“2秒”拖拽到相对当前“右边30”的位置
pyautogui.dragRel(30, 0, 2, button='left')
### button属性可以有:left\middle\right


# 鼠标左键单击
pyautogui.click()
# 鼠标左键单击“100,200”位置
pyautogui.click(x=100, y=200)
# 鼠标左键双击
pyautogui.doubleClick()
# 鼠标左键三击
pyautogui.tripleClick()
# 鼠标右键单击
pyautogui.click(button='right')
# 鼠标右键单击
pyautogui.rightClick()
# 鼠标右键间隔0.25秒单击3次
pyautogui.click(button='right', clicks=3, interval=0.25)


# 鼠标左键放下
pyautogui.mouseDown()
# 鼠标左键抬起
pyautogui.mouseUp()


# 鼠标滚轮上滚10
pyautogui.scroll(10)
# 鼠标滚轮下滚10
pyautogui.scroll(-10)

键盘

# 输入一个字符串
pyautogui.typewrite('Hello world!')
# 每个字母间隔0.25秒输入一个字符串
pyautogui.typewrite('Hello world!', interval=0.25) 
# 键入 "a", 然后敲击左方向键, 再键入 "b".
pyautogui.typewrite(['a','left','b'])


# 按键
pyautogui.press('esc')
# 连续按键
pyautogui.press(['left', 'left', 'left', 'left', 'left', 'left'])


# 键盘按下
pyautogui.keyDown('shift')
# 键盘释放
pyautogui.keyUp('shift')

# 热键按住ctrl的同时按下c
pyautogui.hotkey('ctrl', 'c')

支持的按键有:

['\t', ‘\n', ‘\r', ' ‘, ‘!', ‘"', ‘#', ‘$', ‘%', ‘&', "'", ‘(',
‘)', ‘*', ‘+', ‘,', ‘-', ‘.', ‘/', ‘0', ‘1', ‘2', ‘3', ‘4', ‘5', ‘6', ‘7',
‘8', ‘9', ‘:', ‘;', ‘<', ‘=', ‘>', ‘?', ‘@', ‘[', ‘\', ‘]', ‘^', ‘_', ‘`',
‘a', ‘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', ‘{', ‘|', ‘}', ‘~',
‘accept', ‘add', ‘alt', ‘altleft', ‘altright', ‘apps', ‘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']

消息盒子

python自动脚本的pyautogui入门学习

pyautogui.alert(text='你好吗', title='问候', button='我很好')

返回button值

python自动脚本的pyautogui入门学习

pyautogui.confirm(text='你好吗', title='问候', buttons=['我很好', '我不好', '不告诉你'])

返回输入值

python自动脚本的pyautogui入门学习

pyautogui.prompt(text='你好吗', title='问候' , default='')

将输入值用*号隐藏,返回输入值

python自动脚本的pyautogui入门学习

pyautogui.password(text='', title='', default='', mask='*')

截图功能

首先需要安装Pillow模块

im1 = pyautogui.screenshot()
# 截图整个屏幕并命名保存到本地
im2 = pyautogui.screenshot('my_screenshot.png')
# 截图区域“左侧,顶部,宽度和高度”
im = pyautogui.screenshot(region=(0, 0, 300, 400))


# 返回值(left, top, width, height)
button7location = pyautogui.locateOnScreen('calc7key.png')

实战练习

1、计算机自动计算

打开电脑自带的计算器
利用截图工具截取4张图,并依次命名
将python程序和计算器一同打开在桌面上
运行python程序

# 自动计算器输入
import pyautogui

x = [0]*4
x[0] = pyautogui.locateCenterOnScreen('7.png')
x[1] = pyautogui.locateCenterOnScreen('+.png')
x[2] = pyautogui.locateCenterOnScreen('5.png')
x[3] = pyautogui.locateCenterOnScreen('=.png')
for i in range(4):
  pyautogui.click(x[i])

python自动脚本的pyautogui入门学习

2、自动画图

# 自动画图
import pyautogui
import time

time.sleep(5)

distance = 200
while distance > 0:
  pyautogui.dragRel(distance, 0, duration=0.5) # move right
  distance -= 5
  pyautogui.dragRel(0, distance, duration=0.5) # move down
  pyautogui.dragRel(-distance, 0, duration=0.5) # move left
  distance -= 5
  pyautogui.dragRel(0, -distance, duration=0.5) # move up

python自动脚本的pyautogui入门学习

参见官网:https://pyautogui.readthedocs.io/en/latest/index.html

到此这篇关于python自动脚本的pyautogui入门学习的文章就介绍到这了,更多相关pyautogui入门 内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
详解详解Python中writelines()方法的使用
May 25 Python
Python实现股市信息下载的方法
Jun 15 Python
深入浅析Python中的yield关键字
Jan 24 Python
Python查找两个有序列表中位数的方法【基于归并算法】
Apr 20 Python
20行python代码实现人脸识别
May 05 Python
基于h5py的使用及数据封装代码
Dec 26 Python
Django实现任意文件上传(最简单的方法)
Jun 03 Python
python操作微信自动发消息的实现(微信聊天机器人)
Jul 14 Python
Python中lru_cache的使用和实现详解
Jan 25 Python
python实现图片转字符画
Feb 19 Python
python周期任务调度工具Schedule使用详解
Nov 23 Python
教你使用Python获取QQ音乐某个歌手的歌单
Apr 03 Python
Python自动重新加载模块详解(autoreload module)
Apr 01 #Python
python中的socket实现ftp客户端和服务器收发文件及md5加密文件
Apr 01 #Python
基于python实现FTP文件上传与下载操作(ftp&amp;sftp协议)
Apr 01 #Python
django model的update时auto_now不被更新的原因及解决方式
Apr 01 #Python
pyautogui自动化控制鼠标和键盘操作的步骤
Apr 01 #Python
详解Python中pyautogui库的最全使用方法
Apr 01 #Python
django的模型类管理器——数据库操作的封装详解
Apr 01 #Python
You might like
成本8450万,票房仅2亿,口碑两极分化,又一部DC电影扑街了
2020/04/09 欧美动漫
PHP概述.
2006/10/09 PHP
PHP提取数据库内容中的图片地址并循环输出
2010/03/21 PHP
在php和MySql中计算时间差的方法
2011/04/22 PHP
php绘图之在图片上写中文和英文的方法
2015/01/24 PHP
图文详解phpstorm配置Xdebug进行调试PHP教程
2016/06/13 PHP
php显示页码分页类的封装
2017/06/08 PHP
TP5框架实现自定义分页样式的方法示例
2020/04/05 PHP
window.onresize 多次触发的解决方法
2013/11/08 Javascript
Jquery Ajax解析XML数据(同步及异步调用)简单实例
2014/02/12 Javascript
jQuery ajax调用WCF服务实例
2014/07/16 Javascript
从零学习node.js之简易的网络爬虫(四)
2017/02/22 Javascript
JavaScript错误处理和堆栈追踪详解
2017/04/18 Javascript
详解node.js 下载图片的 2 种方式
2018/03/02 Javascript
原生nodejs使用websocket代码分享
2018/04/07 NodeJs
JS 实现分页打印功能
2018/05/16 Javascript
layui表单验证select下拉框实现验证的方法
2019/09/05 Javascript
Vue如何基于vue-i18n实现多国语言兼容
2020/07/17 Javascript
[01:11:35]Liquid vs LGD 2018国际邀请赛小组赛BO2 第一场 8.16
2018/08/17 DOTA
编写Python脚本把sqlAlchemy对象转换成dict的教程
2015/05/29 Python
python中__call__内置函数用法实例
2015/06/04 Python
selenium python浏览器多窗口处理代码示例
2018/01/15 Python
对python中xlsx,csv以及json文件的相互转化方法详解
2018/12/25 Python
Python字典的基本用法实例分析【创建、增加、获取、修改、删除】
2019/03/05 Python
python智联招聘爬虫并导入到excel代码实例
2019/09/09 Python
CSS3弹性盒模型开发笔记(一)
2016/04/26 HTML / CSS
CSS去掉A标签(链接)虚线框的方法
2014/04/01 HTML / CSS
CSS3 text-shadow实现文字阴影效果
2016/02/24 HTML / CSS
详解HTML5中的元素与元素
2015/08/17 HTML / CSS
招商业务员岗位职责
2013/12/16 职场文书
反腐倡廉演讲稿
2014/05/22 职场文书
县政府班子个人对照检查材料
2014/10/05 职场文书
婚礼庆典答谢词
2015/01/20 职场文书
幼儿园教师自我评价
2015/03/04 职场文书
小学中队活动总结
2015/05/11 职场文书
python playwright 自动等待和断言详解
2021/11/27 Python