python中的庫可以模擬鼠標點擊和鍵盤輸入的動作。所以我們需要告訴程序在哪里點擊,單機還是雙擊,點右鍵還是左鍵,在哪里輸入,輸入什么……
基本操作流程如下:
1.搭建python運行環(huán)境Anaconda,安裝pyautogui庫
2.安裝visual code 用來編寫代碼
1 搭建Python運行環(huán)境
根據(jù)自己的系統(tǒng)和多少位操作系統(tǒng),選擇安裝包。
安裝好之后,再安裝pyautogui,這個庫可用來模擬鼠標和鍵盤操作。
鏈接:https://pan.baidu.com/s/19CCBSdt7qMv2R0HpFDg6qg
提取碼:6666
打開Anaconda Powershell Prompt輸入以下命令:
cd setup.py所在路徑
python setup.py install
2 安裝編寫python代碼的編輯器vscode
常用快捷鍵:
打開一個新的 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 1880 19 1 Click
為例解釋如下:
關閉文檔
為操作名4
位操作序號1880 19
為鼠標位置1
設置的延時,時間為sClick
鼠標操作類型
實時顯示鼠標代碼如下:
def GetPositon():
while True:
currentMouseX, currentMouseY = pag.position()
print(currentMouseX, currentMouseY)
os.system('cls') # 執(zhí)行系統(tǒng)清屏指令
if __name__ == "__main__":
GetPositon()
這一步操作略顯笨拙,不夠自動化,當然這一步可以做得更好,更加便捷。
4編碼實現(xiàn)自動化操作
下面這段代碼,逐行執(zhí)行position.txt中的指令。代碼邏輯如下:
將position.txt中的指令讀入posList列表中
遍歷列表posList,逐步操作
import pyautogui as pag
import time
class ExcuteFlow():
def __init__(self):
posList = []
# 逐行讀position.txt,并分解每行數(shù)據(jù),將數(shù)據(jù)存入字典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文件。
同時延時還需要根據(jù)你的實際情況設置好。
關鍵字:python模擬鼠標和鍵盤
?