python中的库可以模拟鼠标点击和键盘输入的动作。所以我们需要告诉程序在哪里点击,单机还是双击,点右键还是左键,在哪里输入,输入什么……
基本操作流程如下:
1.搭建python运行环境Anaconda,安装pyautogui库
2.安装visual code 用来编写代码
1 搭建Python运行环境
1.png 2.png根据自己的系统和多少位操作系统,选择安装包。
安装好之后,再安装pyautogui,这个库可用来模拟鼠标和键盘操作。
链接:https://pan.baidu.com/s/19CCBSdt7qMv2R0HpFDg6qg
提取码:6666
打开Anaconda Powershell Prompt输入以下命令:
-
cd setup.py所在路径
-
python setup.py install
2 安装编写python代码的编辑器vscode
5.png常用快捷键:
-
打开一个新的 Tab页
Ctrl+N
-
打开一个新的 窗口
Ctrl+Shift+N
-
关闭当前 (光标所在) Tab页
Ctrl+W
-
关闭当前窗口
Ctrl+Shift+W
-
在一个编辑器中切处一个新的编辑器(最多三个)
Ctrl+\
-
代码行缩进
Ctrl+[
,Ctrl+]
-
折叠打开代码块
Ctrl+Shift+[
,Ctrl+Shift+]
-
Ctrl+C
Ctrl+V
如果不选中,默认复制或剪切一整行 -
运行
Ctrl + F5
-
调试运行
F5
3记录个人操作流程
以“打开excel,输入文字,保存,然后关闭”这套流程为例。
整套操作流程总结为以下几点:
-
完整记录上述操作的每一步,每一步鼠标所在位置和操作类型(单击双击或者输入文字等)
-
鼠标移动到你要点击的位置
-
记录位置坐标和操作情况到position.txt
txt中记录内容如下:
4.png以关闭文档 4 1880 19 1 Click
为例解释如下:
-
关闭文档
为操作名 -
4
位操作序号 -
1880 19
为鼠标位置 -
1
设置的延时,时间为s -
Click
鼠标操作类型
实时显示鼠标代码如下:
def GetPositon():
while True:
currentMouseX, currentMouseY = pag.position()
print(currentMouseX, currentMouseY)
os.system('cls') # 执行系统清屏指令
if __name__ == "__main__":
GetPositon()
这一步操作略显笨拙,不够自动化,当然这一步可以做得更好,更加便捷。
4编码实现自动化操作
下面这段代码,逐行执行position.txt中的指令。代码逻辑如下:
-
将position.txt中的指令读入posList列表中
-
遍历列表posList,逐步操作
import pyautogui as pag
import time
class ExcuteFlow():
def __init__(self):
posList = []
# 逐行读position.txt,并分解每行数据,将数据存入字典posDic中
# 同时将字典压入列表posList
with open("position.txt",encoding='utf-8', mode = "r") as fea:
for feature in fea.readlines():
posDic = {}
feature = feature.strip('\n')
words = feature.split(" ")
posDic['operate'] = words[0]
posDic['x'] = int(words[2])
posDic['y'] = int(words[3])
posDic['delay'] = int(words[4])
posDic['name'] = words[5]
posList.append(posDic)
self.posList = posList
self.Excute()
def Excute(self):
#遍历列表posList
for pos in self.posList:
print(f"excute {pos['operate']}")
if pos['name'] == "Click":
pag.click(pos["x"], pos["y"])
elif pos['name'] == "DoubleClick":
pag.doubleClick(pos["x"], pos["y"])
else:
pag.click(pos["x"], pos["y"])
pag.typewrite(pos["name"])
time.sleep(pos['delay'])
if __name__ == "__main__":
excute = ExcuteFlow()
使用python帮你自动点点点,并不复杂。
看懂这一篇教程之后,你当然可以设置更复杂的操作。
核心不在于代码,而在于如何细致分解你的操作流程,就是制作好你的position.txt文件。
同时延时还需要根据你的实际情况设置好。
关键字:python模拟鼠标和键盘
网友评论