声明:原项目由Bilibili UP 主 @不高兴就喝水 完成,本人在其基础上稍作了修改,在此感谢 @不高兴就喝水 给予的灵感
原视频连接:传送门
- 平时工作、学习需要完成许多具有规律性、重复性且又繁杂的任务,这令我们缺少了更多时间去(摸鱼^o^)学习新知识、新技能,故此项目由此诞生
- 原项目的代码冗余和注释都不够好,且所有功能集于一个python文件,其拓展能力以及后期维护或新增功能都比较麻烦,为解决此问题,我在最新的V2.0.0版本中采用模块化开发,对其进行了部分优化
- 本人初学python(主学的是java后端开发),做此项目也算是一次python练手了(>_<)
../
|--history/
|--模板_v1.0.0.py
|--模板_v1.0.0指令测试.xls
|--模板_v1.1.0.py
|--模板_v1.1.0指令测试.xls
|--logs/
|--src/
|--PyRPA_pkg/
|--__pycache__/
|--__init__.py
|--check_mod.py
|--CocoPyRPAlogger.py
|--functions_mod.py
|--utils_mod.py
|--main.py --> 主执行文件
|ver_desc.py
|--test/
|--example/
|--PyRPA_v2.0.0指令测试.xls
|--test1.png
|--.gitignore
|--README.md
安装python3.4以上版本,并配置好系统环境变量(目前有装3.9遇到坑的,我个人用的3.10.8),不会配的请自行百度
安装依赖包
方法:在cmd中(win+R 输入cmd 回车)输入 pip install pyperclip 回车 pip install xlrd 回车 pip install pyautogui 回车 pip install opencv-python -i https://pypi.tuna.tsinghua.edu.cn/simple 回车 pip install pillow 回车 这几步如果哪步没成功,请自行百度 如 pip install opencv-python失败
(我个人强烈建议使用 PyCharm 自带的 python 库安装(PyCharm官网),如下图所示)
直接安装右侧 release 发行版或者 clone 本仓库到本地。
使用方法:把每一步要操作的图标、区域截图保存至一个文件夹中,绝对路径不能含有中文字符(例如:D:/任务图片/xxx.png 是不合格的),图片必须为png格式(注意如果同屏有多个相同图标,程序默认找到最左上的一个,因此怎么截图,截多大的区域很重要,比如输入框只截中间空白部分肯定是不行的,宗旨就是“唯一”)。
在与任务图片相同目录文件夹下建一个以
.xls为后缀名的 Excel 表格(如果不是此格式会出问题),在表格里的第一行是命令的类型、内容等等,详见项目文件test/example/PyRPA_v2.x指令测试.xls。表格里是所有你想要执行的功能指令如果你之前的准备都完成了,则双击
main.py文件即可启动程序。程序启动后会弹窗提示(如下图1所示)输入任务表格的**绝对路径 **(最好不带中文字符),点击OK后程序就会去电脑中找到你的 excel 表格。如果表格不存在或者输入的路径错误就会弹窗提示(如下图2所示)图1
图2
在程序读取到表格里的内容时,如果表格内填写的指令内容都正确,则会弹出数据检查成功的弹窗,如果数据检查失败也会弹窗提示,并将错误写到 logs/
文件夹下的 check_mod[xx.xx.xx].log 日志里,可以打开日志文件查看具体是表格的什么地方数据有误。
- (待完成。。。)
PyAutoGUI库的一些实例参考:
- 鼠标类指令
| 指令 | 指令实例对象类型 | 指令内容 | 备注 |
|---|---|---|---|
| 单击左键 | 字符串 | 图片绝对路径/无 | 图片为png格式,填"无"不点击图片仅单击(开发中) |
| 双击左键 | 字符串 | 图片绝对路径/无 | |
| 单击右键 | 字符串 | 图片绝对路径/无 | |
| 滚轮 | 数字 | 200、-200等 | |
| 鼠标定点移动 | 特定格式字符串 | (100*40)等 |
格式为 (x*y) ,注意是半角符号即英文符号 ,x的取值范围是[0, 宽度分辨率-1],y的取值范围是[0, 高度分辨率-1]。 |
| 鼠标相对移动 | 特定格式字符串 | `(-100 | 300)`等 |
- 键盘类指令
| 指令 | 指令实例对象类型 | 指令内容 | 备注 |
|---|---|---|---|
| 按键 | 特定的字符(串) | 键盘上的具体按键(enter、A、F11) | 参考支持的按键 |
| 热键组合 | 特定格式的字符串 | ctrl+shift+esc、ctrl+c、ctrl+v等 | 支持任何具体可用的快捷键组合 |
| 键盘输入TXT内容 | 文件路径字符串 | xxx.txt文本文件的绝对路径 |
模拟人的打字,依次敲击文本内容 |
【注意事项】:
a. 指令<键盘输入TXT内容>底层调用的是
pyaotugui.typewrite,不支持输入中文b. 因为指令<键盘输入TXT内容>是模拟人敲击键盘来将文本内容输入目标文件,所以程序并不知道你使用的是什么输入法,如果 你的当前输入法是中文,而
xxx.txt文件内写的内容是woaini英文字符串,那么执行此指令可能会输出对应的中文我爱你。这导致的结果就是会产生意外的错误输入(当然,你可以以这个特性来输入中文😀)。
- 控制类指令
| 指令 | 指令实例对象类型 | 指令内容 | 备注 |
|---|---|---|---|
| 等待 | 数字 | 时间/秒 | |
| cmd指令(开发中未实现) | 字符串 | cmd指令 | 确保可执行 |
- 其它
| 指令 | 指令实例对象类型 | 指令内容 | 备注 |
|---|---|---|---|
| 输入 | 字符串 | 任意 | 将单元格内容复制到系统剪贴板,再粘贴 |
| (开发中) |
暂无
v1.0.0 支持中文指令
新增指令
<键盘输入TXT内容>、<热键组合>、<输入>。优化代码和注释v1.1.0 加入gui弹窗提示功能
目前只使用了 pyautogui 自带的gui,优化代码和注释
v2.0.0 使用模块化开发重构了项目
新增了部分功能(更多
<热键组合>、增加<鼠标定点移动>)v2.1.0 加入日志模块
新增将报错信息和执行过程信息写入日志文件,同时支持在控制台查看运行信息