日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內(nèi)不再提示

使用PyAutoGUI包對各種鼠標點擊之類的機械重復操作進行自動執(zhí)行

Linux愛好者 ? 來源:簡說Python ? 作者:簡說Python ? 2021-06-15 16:18 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

一、背景我們經(jīng)常遇到需要進行大量重復操作的時候,比如網(wǎng)頁上填表,對 web 版本 OA 進行操作,自動化測試或者給新系統(tǒng)首次添加數(shù)據(jù)等。這些操作的特點往往是:數(shù)據(jù)同構(gòu),大多是已經(jīng)有了的結(jié)構(gòu)化數(shù)據(jù);操作比較呆板,都是同一個流程的點擊、輸入;數(shù)據(jù)量大,極大消耗操作人精力。

那么能不能自動化呢?

二、自動化的方案如果你在 web 上進行操作, Python 的 Selenium 可以滿足要求。如果需要對 GUI 界面進行操作,你恐怕得試驗下“按鍵精靈”能不能滿足要求。對新系統(tǒng)添加初始數(shù)據(jù),SQL 導出導入是最高效的方式,不過可能需要進行一些較復雜的處理。

曾經(jīng)多次遇到要求一條條手動輸入舊數(shù)據(jù)的系統(tǒng)升級活動。

但以上都存在一些問題, Selenium 比較復雜,按鍵精靈功能上不太完善, SQL 需要一定的知識基礎。那么這里推薦一個更好的解決方案:PyAutoGUI 。

其實 PyAutoGUI 最主要好處就是比較簡單,應急使用的話可以很快構(gòu)建一個可用的自動化操作腳本。畢竟,數(shù)據(jù)處理任務本來就比較急迫,沒有時間使用復雜知識,來構(gòu)建一個完善的腳本。

三、思路和知識點現(xiàn)在哈來說一下基本思路與相關知識點

PyAutoGUI 就是模擬鍵盤、鼠標在界面上進行操作。

這里只使用它的 click 功能來模擬鼠標點擊。

為了獲取需要點擊的位置,設計了一個鼠標坐標獲取的程序。

ASCII 碼的輸入比較簡單。再解決漢字輸入問題,就使得系統(tǒng)基本可用了。

本文以在 web 界面批量新增數(shù)據(jù)記錄為例,講解如何自動化操作。這個例子只是演示之用,非常簡單,大家自行理解、遷移。

四、操作步驟4.1 初識 PyAutoGUI

簡單地說, PyAutoGUI 就是模擬鍵盤、鼠標在界面上進行操作的包。安裝時直接使用如下語句:pip install pyautogui即可。

編寫一個簡單的測試程序:

import pyautogui as pag

pag.PAUSE = 1.5

pag.click(63,191)

以上程序?qū)霂?,定義了每步驟的暫停時間 1.5 秒(用來留給操作時間),然后在屏幕左起 63 像素,上起 191 像素這個點上點擊了鼠標。

4.2 坐標系

PyAutoGUI 默認的坐標系從屏幕左上角開始,x 軸向右增大,y 軸向下增大。所以顯示器上每個點都有自己的位置。

引申一下,當知道界面上每個按鈕的位置時,點擊這些點,就是執(zhí)行相應的操作了。

當然,這一切的前提是界面不變。大多數(shù)應用的界面、按鈕位置不會變來變?nèi)?。如果你有這方面需求,可以參考下 locateOnScreen() 函數(shù)。這個函數(shù)根據(jù)你提供的圖片,在屏幕上找到像素匹配的地方。這樣就不怕按鈕動來動去了。

為了獲取屏幕的坐標系,寫了一個簡單的程序,用來獲取鼠標在屏幕上的坐標。大家可以自行下載運行。

import pyautogui as pag

import os

try:

while True:

os.system(‘cls’)

a = ‘%4d,%4d’%pag.position()

print(a)

except Exception as e:

print(e)

運行以上程序,移動鼠標到各個按鈕上,就可以看到相應的坐標。

4.3 點擊

PyAutoGUI 的點擊很簡單:

pyautogui.click(x=None, y=None, clicks=1, interval=0.0, button=‘left’, duration=0.0)

其中x,y是坐標,clicks 是點擊次數(shù),interval 是點擊間隔,button 指代三個鼠標按鈕的哪一個,duiation 是點擊之間的間隔。

寫如下程序,來進行任務、時間和新建按鈕之間的跳轉(zhuǎn)。

pag.click(63,191)

pag.click(328,191)

pag.click(384,461)

pag.click(374,191)

4.4 輸入

輸入 ASCII 字符和鍵盤擊鍵、熱鍵分別如下:

輸入 ASCII 字符串是typewrite(message=‘test message.’,interval=0.5)

擊鍵是press(‘esc’)

按下是KeyDown(‘ctrl’)

松開是KeyUp(‘ctrl’)

組合鍵是hotkey(‘ctrl’,‘v’)。

至于漢字,稍微復雜點。

4.5 漢字輸入

涉及漢字,無法用 ASCII 方案解決,需要導入包 pyperclip ,這個包封裝了系統(tǒng)剪貼板,大家知道怎么回事了吧。

import pyperclip

#以下讀入內(nèi)容,就是把內(nèi)容存入剪貼板。

pyperclip.copy(‘需要輸入的漢字’)

#以下輸出內(nèi)容,就是粘貼。

pag.hotkey(‘ctrl’,‘v’)

其實就是用 pyperclip 模擬拷貝,用熱鍵 Ctrl+v 粘貼,實現(xiàn)了非 ASCII 字符的輸入。

4.6 集成起來

下面,把整個程序集成起來看:

import pyautogui as pag

import pyperclip

pag.PAUSE = 1.5

pag.FAILSAFE = True

to = [‘測試任務1’,‘測試任務2’,‘測試任務3’,‘測試任務4’,‘測試任務5’,

‘測試任務6’,‘測試任務7’,‘測試任務8’,‘測試任務9’,‘測試任務10’]

for t in to:

pag.click(63,191)

pyperclip.copy(t)

pag.hotkey(‘ctrl’,‘v’)

pag.click(328,191)

pag.click(384,461)

pag.click(374,191)

以上程序,根據(jù) to 列表內(nèi)容,把操作分解為點擊和粘貼,實現(xiàn)了自動化操作的目的。大部分編碼都很好理解,能跟鼠標操作一一對應起來??赡艽嬖陔y度的是數(shù)據(jù)源的問題,總不能把所有數(shù)據(jù)都寫入程序吧?

五、數(shù)據(jù)源相較于復雜的現(xiàn)實數(shù)據(jù)源,最好的方式就是把數(shù)據(jù)轉(zhuǎn)成 csv 文件。這樣許多 Excel 都可以另存成這個文件,其本身又是基于文本的,可讀可寫,比較方便。其他諸如 SQL 數(shù)據(jù)庫、 XML 數(shù)據(jù)也可以導出轉(zhuǎn)換為 csv 文件。

假設現(xiàn)在有了 csv 格式數(shù)據(jù)源 data.csv ,需要這樣操作。

to = []

with open(‘data.csv’)as f:

lines = f.readlines()

for line in lines:

to.append(tuple(line.split(‘,’)))

以上代碼比較簡單,把 csv 中存成的數(shù)據(jù)存儲到 to 這個數(shù)組里,每行數(shù)據(jù)都是一個元組,調(diào)用的時候,如4.6部分代碼所示,使用 for 循環(huán)加上元組下標即可。

六、總結(jié)

本文使用 PyAutoGUI 包,對各種鼠標點擊、輸入之類的機械重復操作進行自動執(zhí)行,可大幅提高工作效率。這里只使用了 click 功能和 pyperclip 包的 copy 功能。主要是為了簡化編程,讓大家在緊張和繁瑣的操作中,快速編寫一個自動化執(zhí)行的小腳本。

編輯:jq

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 數(shù)據(jù)存儲

    關注

    5

    文章

    1038

    瀏覽量

    53020
  • GUI
    GUI
    +關注

    關注

    3

    文章

    699

    瀏覽量

    43911
  • python
    +關注

    關注

    58

    文章

    4889

    瀏覽量

    90330

原文標題:解放雙手,利用 PyAutoGUI 快速構(gòu)建自動化操作腳本

文章出處:【微信號:LinuxHub,微信公眾號:Linux愛好者】歡迎添加關注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    別再無效加班!IT 運維自動化腳本,砍掉90%重復工作

    周一早晨,打開工單系統(tǒng),23個待處理,其中一半是“軟件裝不上”“系統(tǒng)卡頓”這類重復問題。這場景你是否似曾相識?大多數(shù)IT團隊已被重復性工作壓垮。人手本就捉襟見肘,還要被終端重復操作、工
    的頭像 發(fā)表于 04-07 16:57 ?364次閱讀
    別再無效加班!IT 運維<b class='flag-5'>自動</b>化腳本,砍掉90%<b class='flag-5'>重復</b>工作

    數(shù)據(jù)在流動,但時間戳沒對齊

    操作系統(tǒng)識別并處理。 任務管理器顯示帶寬充足,無丟、無中斷, 數(shù)據(jù)確實在流動。 但當你回放多源合成視頻、進行動作捕捉分析,或調(diào)試分布式傳感器系統(tǒng)時,卻發(fā)現(xiàn): 攝像頭畫面與屏幕操作存在
    的頭像 發(fā)表于 04-03 18:02 ?145次閱讀

    基于PixArt PMW3360傳感器的游戲鼠標開源項目介紹

      商用旗艦游戲鼠標價格居高不下,性價比拉胯?自帶外殼手感不合手,沒法適配專屬抓握習慣?游戲鼠標用久了按鍵雙擊、延遲卡頓,體驗大打折扣?想定制專屬游戲鼠標,卻缺從機械設計到嵌入式固件的
    的頭像 發(fā)表于 04-03 16:58 ?2280次閱讀
    基于PixArt PMW3360傳感器的游戲<b class='flag-5'>鼠標</b>開源項目介紹

    01. 如何在 Allegro 中快速區(qū)別不同網(wǎng)絡?| 芯巧Allegro PCB 設計小訣竅

    -Dehighlight all后,可以通過鼠標點選已經(jīng)高亮的網(wǎng)絡,使之高亮關閉并將改變的顏色恢復到之前狀態(tài),或者點擊下方的Nets、Symbols等選項,將所選對象取消高亮,如下圖6所示。圖6取消高亮對象
    發(fā)表于 04-03 15:51

    初識ros2 功能建立與可執(zhí)行文件的配置

    本文介紹了ROS2程序的兩種啟動方式:直接運行可執(zhí)行文件(ros2 run)和使用啟動文件(ros2 launch)。重點講解了Python軟件的結(jié)構(gòu),包括package.xml、setup.py
    的頭像 發(fā)表于 01-22 13:41 ?478次閱讀

    如何使用wireshark進行遠程抓

    一、概述 通常我們使用wireshark進行分析的時候,在遠端設備抓取一部分數(shù)據(jù)后,再回傳到本地,然后使用wireshark進行分析。這種操作
    的頭像 發(fā)表于 01-16 16:05 ?1198次閱讀
    如何使用wireshark<b class='flag-5'>進行</b>遠程抓<b class='flag-5'>包</b>

    榮耀時刻 | 鴻道Intewell新型工業(yè)操作系統(tǒng)斬獲機械工業(yè)領航獎

    憑借突出的智能化技術優(yōu)勢、優(yōu)異的性能與豐富的行業(yè)應用實踐,鴻道Intewell新型工業(yè)操作系統(tǒng)與西門子、羅克韋爾自動化、施耐德電氣等行業(yè)領軍企業(yè)一同榮獲“機械工業(yè)領航獎”,這一成果充分體現(xiàn)了鴻道Intewell新型工業(yè)
    的頭像 發(fā)表于 10-11 16:23 ?767次閱讀
    榮耀時刻 | 鴻道Intewell新型工業(yè)<b class='flag-5'>操作</b>系統(tǒng)斬獲<b class='flag-5'>機械</b>工業(yè)領航獎

    新手必看:電池氣密性檢測儀操作入門指南-岳信儀器

    對于剛接觸電池氣密性檢測儀的新手來說,了解其操作方法至關重要。下面就為大家詳細介紹電池氣密性檢測儀的操作入門知識。(1)操作前準備在開啟
    的頭像 發(fā)表于 09-12 11:39 ?924次閱讀
    新手必看:電池<b class='flag-5'>包</b>氣密性檢測儀<b class='flag-5'>操作</b>入門指南-岳信儀器

    電競鼠標微動開關:電容讓點擊響應快過 0.1 秒的 “瞬時能量站”

    在電競領域,鼠標的響應速度往往是決定勝負的關鍵因素之一。傳統(tǒng)機械式微動開關雖然技術成熟,但受限于物理結(jié)構(gòu),其響應時間通常在5-10毫秒之間,且存在金屬氧化、觸點磨損等問題。而近年來興起的電容式
    的頭像 發(fā)表于 08-22 10:27 ?1835次閱讀

    探秘核心技術:全自動電阻率測試儀的自動化架構(gòu)與精密測量算法

    機械執(zhí)行系統(tǒng):精準操作的物理載體 機械執(zhí)行系統(tǒng)是儀器與樣品交互核心,其精度影響檢測穩(wěn)定性。系統(tǒng)含樣品承載平臺、探針驅(qū)動機構(gòu)等。平臺借精密導
    的頭像 發(fā)表于 08-22 08:43 ?701次閱讀
    探秘核心技術:全<b class='flag-5'>自動</b>電阻率測試儀的<b class='flag-5'>自動</b>化架構(gòu)與精密測量算法

    重復執(zhí)行 Ctrl-&gt;Bulk 傳輸時,出現(xiàn) USBD_STATUS_INVALID_PARAMETER 錯誤,怎么解決?

    問.1重復執(zhí)行 Ctrl->Bulk 傳輸時,出現(xiàn) USBD_STATUS_INVALID_PARAMETER 錯誤。 ·USBD_STATUS_CANCEL 發(fā)生
    發(fā)表于 08-14 06:39

    華秋DFM軟件丨操作教程——自定義快捷鍵篇

    進入。【第二步】自定義設置快捷鍵的操作流程: 雙擊要設置項目對應的快捷鍵欄 ,彈出操作框后, 直接在鍵盤上按出需要更改或新增的快捷鍵組合 ,點擊確認即可。注:若設置了重復的快捷鍵,系統(tǒng)
    發(fā)表于 08-13 16:29

    協(xié)作機械臂產(chǎn)品介紹

    多元需求比鄰星協(xié)作機械臂擁有出色的負載表現(xiàn),別看其外觀設計精巧,卻能輕松承載較重的物品 。在工業(yè)生產(chǎn)中,無論是搬運大型零部件,還是在精密電子制造環(huán)節(jié)中對微小元器件進行精準操作,它都能穩(wěn)定運行,
    發(fā)表于 08-07 17:20 ?0次下載

    玉林在線自動測寬儀 自動化產(chǎn)線升級

    格,讓各種寬度的帶均能方便快速檢測。 分析與優(yōu)化 可將測量數(shù)據(jù)傳輸?shù)诫娔X上進行存儲,亦可配備工控機與測控軟件,進行自動化分析存儲,方便工作
    發(fā)表于 07-23 15:23

    自動膠機遠程監(jiān)控物聯(lián)網(wǎng)解決方案

    在現(xiàn)代制造業(yè)中,自動膠機廣泛應用于電子、汽車、電池等眾多行業(yè),承擔著產(chǎn)品膠、封裝等關鍵工序。隨著企業(yè)生產(chǎn)規(guī)模的擴大和智能化轉(zhuǎn)型的需求,對自動
    的頭像 發(fā)表于 06-07 14:02 ?1012次閱讀
    通许县| 阳信县| 巴马| 甘孜县| 惠来县| 斗六市| 西昌市| 栖霞市| 靖边县| 铜山县| 瓦房店市| 平阴县| 丰台区| 赤城县| 洪泽县| 三江| 永靖县| 鞍山市| 贵德县| 澄江县| 新龙县| 沅江市| 化隆| 安陆市| 汝城县| 始兴县| 赞皇县| 台东县| 保靖县| 淮阳县| 西乌| 花莲市| 岳池县| 湖北省| 上栗县| 福鼎市| 沙坪坝区| 保亭| 阿克| 东城区| 象州县|