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使用cPickle模块序列化实例
Sep 25 Python
基于python yield机制的异步操作同步化编程模型
Mar 18 Python
Python简单实现安全开关文件的两种方式
Sep 19 Python
python3爬虫之设计签名小程序
Jun 19 Python
python生成多个只含0,1元素的随机数组或列表的实例
Nov 12 Python
python接口自动化(十六)--参数关联接口后传(详解)
Apr 16 Python
Django框架中间件(Middleware)用法实例分析
May 24 Python
用Python获取摄像头并实时控制人脸的实现示例
Jul 11 Python
为什么称python为胶水语言
Jun 16 Python
如何利用Python动态模拟太阳系运转
Sep 04 Python
Django利用AJAX技术实现博文实时搜索
May 06 Python
Python必备技巧之字符数据操作详解
Mar 23 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
PHP调用Twitter的RSS的实现代码
2010/03/10 PHP
YII模块实现绑定二级域名的方法
2014/07/09 PHP
Symfony页面的基本创建实例详解
2015/01/26 PHP
Yii2数据库操作常用方法小结
2017/05/04 PHP
JavaScript基本对象
2007/01/11 Javascript
js一般方法改写成面向对象方法的无限级折叠菜单示例代码
2013/07/04 Javascript
jquery(hide方法)隐藏指定元素实例
2013/11/11 Javascript
javascript 实现子父窗体互相传值的简单实例
2014/02/17 Javascript
vue-cli的webpack模板项目配置文件分析
2017/04/01 Javascript
详解AngularJS ng-class样式切换
2017/06/27 Javascript
nodejs 使用nodejs-websocket模块实现点对点实时通讯
2018/11/28 NodeJs
在 Vue.js中优雅地使用全局事件的方法
2019/02/01 Javascript
JS使用正则表达式判断输入框失去焦点事件
2019/10/16 Javascript
Webpack设置环境变量的一些误区详解
2019/12/19 Javascript
使用python调用浏览器并打开一个网址的例子
2014/06/05 Python
python打开文件并获取文件相关属性的方法
2015/04/23 Python
Python实现并行抓取整站40万条房价数据(可更换抓取城市)
2016/12/14 Python
Django自定义分页效果
2017/06/27 Python
django创建自定义模板处理器的实例详解
2017/08/14 Python
python 连接各类主流数据库的实例代码
2018/01/30 Python
Python解析命令行读取参数之argparse模块
2019/07/26 Python
Python在后台自动解压各种压缩文件的实现方法
2020/11/10 Python
python中判断数字是否为质数的实例讲解
2020/12/06 Python
AmazeUI 点击元素显示全屏的实现
2020/08/25 HTML / CSS
中兴通讯全球官方网站:ZTE
2020/12/26 全球购物
Java面试题及答案
2012/09/08 面试题
struct与class的区别
2014/02/03 面试题
2014年公司植树节活动方案
2014/03/04 职场文书
计算机科学系职业生涯规划书
2014/03/08 职场文书
cf收人广告词大全
2014/03/14 职场文书
《搭石》教学反思
2014/04/07 职场文书
预备党员公开承诺书
2014/05/28 职场文书
2014个人反腐倡廉思想汇报
2014/09/15 职场文书
借款协议书
2014/09/16 职场文书
安全教育日主题班会
2015/08/13 职场文书
工作违纪的检讨书范文
2019/07/09 职场文书