2020年5月27日 星期三

在 Win10 下如何設定 Sikuli 定時自動執行

[Python,Sikuli] 如何定時執行程式,來將每日例行工作自動化。中,我們介紹如何用 Python 設定排程,來達到定時執行的功能,但這樣的作法還是需要我們每日開啟 Sikulix IDE 去執行該 Script,但事實上 Win10  我們可以結合 Win 10 工作排程器及 Sikulix 所提供的命令列語法來達成我們所要的效果,以下分別說明。

Sikulix 所提供的命令列語法

Sikulix 有提供命令列參數 -r 可供我們指定所要執行的 .sikuli 、.jar 、.skl (後兩者可由 Sikulix IDE產生),使用格式如下:
 java -jar /path/sikulixide -r /path/test.[sikuli|jar|skl]
例如假設我們現有一個 test.sikuli 在 c:\test 目錄下,sikulixide 的 jar 檔在 c:\sikulix 目錄下,則在命令列模式下指令如下:
java -jar c:\sikulix\sikulixide.jar -r c:\test\test.sikuli

Win 10 工作排程器

Win10 內建的工作排程器可於 Window 系統管理工具找到,如下圖所示。

開啟工作排程器後直接選擇建立工作,如下圖黃色標示。


選擇後會進入到設定畫面,要依序完成上方紅色框內的五個頁面設定,如下圖所示。


首先第一個「一般」頁面基本上只要設定名稱就好了,在此範例我們設名稱為 TEST,後面進到「觸發程序」 ,這是設定如何啟動程序的條件,在這裡我們設定每日早上8點啟動,依下圖紅色數字順序設定即可完成。


接下來進到「動作」頁面,是設定我們要執行什麼動作,在這我們依下圖紅色數字順序,把在前面 Sikuli 範例指令鍵入後,按確定即可建立完成。

後面的「條件」與「設定」頁面則可視個人需求進行調整,在本例我們不需要調整,直接選擇確定即可。


設定完成後,選擇左手邊的「工作排程器程式庫」,即可在畫面中間看到我們所設的 TEST  工作,如想測試執行結果,可按右手邊的執行,如下圖順序所示。


如果執行成功,在中間畫面[上次執行結果]欄位,會顯示操作順利完成,如果無法行會出現工作尚未執行並有相關錯誤訊息,這時就要回到該工作的「動作」頁面重新設定所要執行的程序或指令。

結語

透過 Win10 工作排程器及 Sikuli ,我們可以做到定時自動執行功能,來達到簡便工作的目的,有興趣的朋友可多多嘗試。

2020年5月24日 星期日

[Python,Sikuli]如何將 Excel 內含有中文的資料轉存為 CSV 檔後讀入程式內使用

如何用 Sikuli 來將重複性的工作自動化,讓省下來的時間從事更有生產力的工作並提升生活品質。 中有介紹到 Sikuli 主要是遵循 Python 2.7 (Jyhton) 語法,故在讀入,由Excel轉出內含中文的資料讀入程式時,也會遇到 Python 2.7 所遇到的問題,這問題可分為以下兩個部分:

CSV 檔格式的問題

由 Excel 轉出的 csv 檔並不能夠直接使用,必需要先用 notepad++ 之類的程式,將 csv 檔轉為 UTF-8碼格式,就如同下圖所示,在 notepad++ 開啟 csv 檔,選擇[轉換]->[轉換至UTF-8碼格式]後,在將 csv 檔存檔。


讀取 CSV 檔

在 Python 2.7 中是用提供讀取 csv 檔用的套件,套件名稱就叫 csv,但在讀取中文的有問題,如同以下範例所示:


如要讀取內含中文的 csv 檔, 必需用codecs套件所提供的open方法,來指定打開的文件的語言編碼,它會在讀取的時候自動轉換為內部unicode,避免前述問題,但 codecs 套件讀入的格式,不是如 csv 套件一般,已經轉換好的 list 格式,需自行處理,不過相當簡單,只要用 split 函式,以換行符號(\n)為關鍵字,即可轉換為 list,如下列範例所示。

import codecs;
data = open("c:\\jython2.7.1\\test2.csv").read();
#判斷是否被轉含有 BOM UTF-8 格式,如果是將 BOM 去除
if data[:3] == codecs.BOM_UTF8:  
    data = data[3:];
#用換行符號(\n)將每行資料分開
splitdata=data.split('\n');
for i in splitdata:
   print(i);

執行結果如下圖:


結語

當我們有大量資料要輸入網頁或特定程式,而不想要用人工一筆一筆鍵入時,我們可用 sikuli 讀入 csv  檔,將資料一筆一筆輸入網頁或特定程式,而如果資料含有中文時,在讀入 csv 檔時,就要採用上述的處理方式,而無法直接套用內建csv 套件,如有需求的朋友,可參考使用。

2020年5月20日 星期三

雪泥鴻爪

出處: 蘇東坡《和子由澠池懷舊》詩

人生到處知何似,應似飛鴻踏雪泥。

泥上偶然留指爪,鴻飛那復計東西。

老僧已死成新塔,壞壁無由見舊題。

往日崎嶇還記否,路長人困蹇驢嘶。




[Excel]如何創建自定義函數

在 Excel 內建函式中找不到自已想要的函式怎麼辦?事實上我們可以自已建一個,以下是一個簡單的Excel自定義函數示例,用於將民國年轉為西元: Function 民國轉西元(x As Double) As Double     民國轉西元 = x + 1911 End Func...