Python RPA 流程自动化快速上手

发布时间:2024-11-19 10:52

IT技术快速入门,如Python编程 #生活知识# #生活指南# #职场建议# #职场技能提升课程#

目录 1. PyAutoGUI库的安装1.1 系统环境1.2 安装参考1、使用pip进行安装,pip install pyautogui2、下载后安装3、检测安装是否成功 2.鼠标控制函数2.1 屏幕分辨率和鼠标位置2.2 控制鼠标移动2.3 控制鼠标点击2.3-02 控制鼠标滚动2.4 控制鼠标拖动 3. 控制键盘3.1 控制键盘按键3.2 控制键盘输入3.3 键盘快捷键3.4 解决键盘输入中文问题

RPA,全称为Robotic Process Automation,即机器人流程自动化。
我们可以利用RPA技术将工作中可重复的部分流程化,让机器替我们完成这一工作。
许多程序并不提供方便的接口,我们难以直接通过脚本来批量完成工作任务。

PyAutoGUl允许我们使用Python脚本来控制鼠标和键盘以自动与其他应用程序交互,我们可以用这个库来记录我们的键鼠操作,从而使得计算机像人一样去使用那些应用程序,使人们从繁琐的重复性工作中抽离出来。
我们一起来了解一下PyAutoGUI库的安装及其使用方法。

1. PyAutoGUI库的安装

1.1 系统环境

操作系统:win10 64位
Python版本:Python 3.7.0及其以上

1.2 安装参考

1、使用pip进行安装,pip install pyautogui

使用pip方式安装PyAutoGUI库。

#创建虚拟环境 mkvirtualenv -p python3.10 PythonRPA #进入虚拟环境 workon PythonRPA pip install pyautogui pip list 123456

2、下载后安装

手动下载进行安装,
进入网址:https:/pypi.org/project/PyAutoGUI,点Download files,下载右侧的PyAutoGUI-0.9.38.tar.gz

3、检测安装是否成功

python import pyautogui 12

2.鼠标控制函数

在日常生活中经常使用的鼠标动作,都可以使用PyAutoGUI库中的函数来模拟,
那么一起来了解下鼠标坐标的定义及一些鼠标控制函数。

2.1 屏幕分辨率和鼠标位置

先来了解一下鼠标坐标的定义。
PyAutoGUI会获取我们的屏幕大小信息,之后以屏幕的左上角为坐标原点,从坐标原点向右为x轴,从零开始递增;
从坐标原点向下为y轴,从零开始递增。
最左上角的像素点坐标为(0,0)。

如果屏幕分辨率为1920×1080,则最右下角的像素点将为(1919,1079)(因为坐标从0开始而不是1)
我们可以用函数获取屏幕分辨率大小以及鼠标当前坐标:

#屏幕分辨率大小由size()函数作为两个整数的元组返回 pyautogui.size() #鼠标光标的当前X和Y坐标由position()函数返回 print(pyautogui.position()) 1234

此外,也可以通过一些外部软件获取鼠标坐标,如微信的截图功能:
登陆微信后按下 ctrl+a,
鼠标右侧就会展示出当前坐标。

2.2 控制鼠标移动

pyautogui.moveTo([1392,47],duration=1) 1

此种方式无论鼠标的当前位置在哪,都控制鼠标移动到屏幕坐标轴的(x,y)=(1392,47)的位置上。

pyautogui.moveRel([20,30],duration=1) 1

而此种方式则先要获取鼠标的当前位置,然后在此位置的基础上向右移动20个像素,向下移动30个像素。
而另一个参数“duration”规定鼠标移动到目标位置所需要的时间,我们会看到鼠标在规定时间内逐渐移动到目标位置,就像我们真正在手动移动鼠标一样。

2.3 控制鼠标点击

我们可以简单的调用click()函数来完成点击,这样会直接使鼠标在当前位置单击鼠标左键一次:

pyautogui.click() 1

如果想要在特定坐标点单击鼠标,可以用下面的方式,这样就不用再先行移动鼠标:

pyautogui.click([566,193]) 1

在鼠标点击中,有一些值得注意的参数:

参数可选值简介buttonleft, right, middle决定由鼠标左键、右键、还是滚轮来执行点击操作clicks整数决定鼠标点击次数interval数字与clicks搭配使用,决定每次鼠标点击事件的间隔时间

我们也可以完成对点击动作的分解,“mouseDown”即表示按下鼠标的动作,而”mouseUp”表示抬起鼠标的动作。

pyautogui.mouseDown(button='left', x=243, y=637) pyautogui.moveTo([707,669],duration = 1) pyautogui.mouseUp(button='left', x=707, y=669) 123

另外,其他鼠标点击事件的控制代码如下所示,我们可以直接调用这些函数,以减少大量添加描述参数:

pyautogui.doubleclick() #控制双击鼠标左键 pyautogui.rightClick() #控制单击鼠标右键 pyautogui.middleclick() #控制单击鼠标滚轮键 123

2.3-02 控制鼠标滚动

通过scroll()函数,我们可以模仿鼠标滚轮的滑动。

pyautogui.scroll(num) 1

其中num的取值范围是任意整数,num取正数表示滚轮向上滑动,而取负数=数表示滚轮向下滑动。

2.4 控制鼠标拖动

我们还常常需要用鼠标选中一段区域,这时我们就需要用到控制鼠标拖动功能。

pyautogui.moveTo([237,890],duration = 0.5) pyautogui.dragTo([873,951], duration = 1) pyautogui.moveTo([237,890],duration = 0.5) pyautogui.dragRel([20,30],duration = 1) 1234

此种方式和前面控制鼠标移动的原理相同,共有两种控制鼠标拖动的方式,
第一种是控制鼠标拖动到[873,951]坐标位置,
第二种是以当前鼠标位置为起点,向右拖动20个像素的距离,向下拖动30个像素的距离。
“duration”参数依然控制鼠标移动的时间。
“button”等参数仍然适用在这里。

3. 控制键盘

类似的,我们也可以用PyAutoGUI库来模拟键盘输入。

3.1 控制键盘按键

pyautogui.press('a') pyautogui.press('space') 12

代码输入参数表示要控制键盘按下键的键值,单独输入字母,如’a’,就相当于按下键盘上的’a’键,一些常用的快捷键列举如下:

按键说明enter(或return 或 \n)回车escESC键shiftleft,shiftright左右SHIFT键altleft, altright左右ALT键ctrlleft,ctrlright左右CTRL键tab (t)TAB键backspace, deleteBACKSPACE、DELETE键pageup, pagedownPAGEUP和PAGE DOWN键

3.2 控制键盘输入

pyautogui.typewrite(string) 1

如果为了输入一段内容,可以表示键盘输入一段字符串内容,如当string的值为‘l love pyautogui’,就表示通过键盘输入一串字符串内容。
例如:

pyautogui.typewrite('l love pyautogui') 1

“interval”参数可以用来控制每个按键按下间隔的时间。
给参数加上中括号 [],参数string表示键盘上按键的名称,就取代了前面的press方法,同样可以实现控制键盘按键功能。

pyautogui.typewrite([string]) 1

要注意的是:此方法可以写入英文和数字,但是并不能够写入中文。

3.3 键盘快捷键

pass

3.4 解决键盘输入中文问题

按照正常的输入逻辑,输入中文需要使用输入法输入拼音,再选中需要的正确字符,这样的操作显然太过繁琐。我们可以使用一些库向系统剪切板中写入中文,再调用热键进行粘贴。
操作剪贴板的常见库有win32clipboard和pyperclip两种,我们都可以尝试使用,都很方便。

唯一的区别点可能是pyperclip在打包为exe时,文件体积会更大。
pyperclip:

# -*- coding: utf8 -*- import pyperclip import pyautogui #Python 2 版本pyperclip提供中文复制 #可以把pyperclip的写入与粘贴快捷键封装为一个函数 def paste(foo): pyperclip.copy(foo) pyautogui.hotkey('ctrl', 'v') #写入一行文字 foo = u'学而时习之' #移动到文本框 pyautogui.click(442, 348) #进行粘贴 paste(foo)

123456789101112131415161718

win32clipboard :
注意,要先安装pywin32,win32clipboard包含在其中

pip install pywin32 1

案例代码:

# -*- coding: utf8 -*- import pyautogui import win32clipboard as w import win32con #获取剪切板内容 def gettext(): w.OpenClipboard() t = w.GetClipboardData(win32con.CF_TEXT) w.CloseClipboard() return t #写入剪切板内容 def settext(aString): w.OpenClipboard() w.EmptyClipboard() w.SetClipboardData(win32con.CF_TEXT, aString) w.CloseClipboard() #写入中文字 a="我们中国滴汉字CSDN搜代码写注释" #对中文进行转码,否则会出现乱码 settext(a.encode('gbk')) #这边得编码一下,否则复制出来是乱码的 #移动到文本框 pyautogui.click(442, 348) #进行粘贴 pyautogui.hotkey('ctrl', 'v')

12345678910111213141516171819202122232425262728293031

值得注意的是,用win32clipboard将中文写入剪贴板,需要先进行转码,否则会有乱码出现。

网址:Python RPA 流程自动化快速上手 https://www.yuejiaxmz.com/news/view/134501

上一篇:使用 NODE
下一篇:MY1B16G

相关内容

8个 Python 加速运行优化技巧
让生活自动化的5个Python项目:从初级到高级
生活中的5 个自动化Python 项目——从初学者到高级(附零基础学习教程)
5 个自动化生活的 Python 项目:从初学者到高级
python自动化办公1
从初级到高级,5个可以用到生活中的Python自动化项目
Python+Django二手图书交易售卖系统=含卖家
python
高效时间管理:Python编程助力职场与家庭生活平衡之道
最受欢迎的11个Python编程软件,工作效率直接起飞!

随便看看