顯示具有 jython 標籤的文章。 顯示所有文章
顯示具有 jython 標籤的文章。 顯示所有文章

2020年5月31日 星期日

Sikulix 在 mac 下的設定使用

Sikulix IDE  在 mac 使用基本上何在 Windows 下差不多,以下為設定步驟:

1. 確認是否有安裝 java:

可以在終端機界面下打以下指令確認。

java -version

如果有裝會顯示如下結果。

(base) ChundeMacBook-Pro:bin $ java -version
openjdk version "1.8.0_152-release"
OpenJDK Runtime Environment (build 1.8.0_152-release-1056-b12)
OpenJDK 64-Bit Server VM (build 25.152-b12, mixed mode)


因為 Oracle 對 Java 有一些限制,如果要避免的話,可以用 OpenJDK,可以到 OpenJDK官網下載對應 macOS / x64 的 tar.gz 檔,下載回來後執行以下指令解壓縮。

tar xf openjdk-xx.x.x_osx-x64_bin.tar.gz

解壓縮完會得到一個 jdk-xx.x.x.jdk 的目錄,在用以下指令搬到 JVM即可。

sudo mv jdk-xx.x.x.jdk /Library/Java/JavaVirtualMachines/

2.下載 Sikulix IDE 及 Jython stanalone jar 檔

在 Sikuli  官網下載頁面 ,下載上述二個 Jar 檔,並放置在同一目錄下,第一次執行前,請去 mac 系統偏好設定 ,設定安全性及隱私,允許 java 取得輔助使用螢幕錄製的使用權,如下圖所示。



設定完在 Finder中點 Sikulix Jar 檔二下即可執行,這時會出現 Sikulix IDE 界面,此時如果你直接輸入簡單測試程式執行時,會出現下面錯誤訊息。


一開始本人也搞不清楚這是什麼問題,經過研究才發現,原來一開始開啟的介面,其適用的語言是 javascript ,這可由 Sikulix IDE 界面最右下角確認,如下圖所示。



這時只要選擇新增一個新的檔案即可,這時右下顯示的適用語言,就是 Jython 了,測試程式也可正常執行,如下圖所示。



經過此設定 Sikulix IDE 即可正常使用。

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年3月11日 星期三

在 WIN 10 下執行 SikuliX 2.0.X 版。

在 Win 10 底下,下載了 Sikuli的 Jar 檔,下載下來後行後說缺少 Jython,無法正常執行,跑去Jython官網下載安裝,確仍然無法正常執行,最後才發現,原來是要去下載  SikuliX 下載頁所附下列 Jython 解釋器。

用於python腳本的Jython解釋器2.7.1(默認)

並將其放到與SikuliX.jar相同的文件夾中。
下次啟動時,它們將被SikuliX識別,並移至SikuliX的擴展文件夾。
因此最好是在第一次使用IDE之前先下載。

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

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