於Python上使用DLL裡的API呼叫範例

張貼日期:Feb 21, 2020 6:17:6 AM

CsvReader 這個單純的DLL來作簡單的示範,

測試用的csv檔案內容(ANSI編碼, Win10的記事本預設是UTF-8編碼請留意)

Pythontest.csv

name,gender,math,english

Georgie,M,35,68

Derek,M,77,81

Dan,M,69,60

Sting,M,81,92

Jade,F,55,72

Anthony,M,47,33

Beth,F,83,65

程式碼與執行結果如下, 用看的就一目瞭然了

支援XP的最後一版Python 3.4.4用法都一樣, 差別在還不支援 print(f"") 的 f 格式描述,

修改27,30,34行使符合本版Python的語法即可, 如下, 使用本版Python就能運行在XP上

Python為便於對文字的處理預設是以unicode方式, 因此若是要使用ansi字串的場合, 就需於字串前加個b代表用byte的方式處理文字

而Python的print用法仍在演化, 所以也可以透過ctype的方式改用c/c++的printf來取代程式碼, 如下圖插入框框中的程式碼內容

改用這樣的方式程式碼就能很容易的在新舊Python版本中兼容且顯示格式都一致而不用再改來改去了, 所以也只需保存一份程式碼即可

Python的好處是小巧可攜容易入門 (這是指原始的官方版, 並非坊間教學龐大而走味的大蟒蛇之類的套裝),

只要把可執行環境帶到, 用記事本就能開始寫程式並使其運作, 就猶如console版的Basic,

以3.4.4版(支援XP的最後一版)為例, 這個可以執行環境就只是一個資料夾約40MB的檔案內容, 用RAR壓縮後僅11MB,

把本範例與可執行環境同置於一個資料夾 PyWorkPortable 的路徑中, 壓縮後的檔案 PyWorkPortable.rar 內容如下圖說明

1. 資料夾 Py34ftw 就是Python 3.4.4的可執行環境, 從XP到Win10不論x86/x64只要複製此資料夾就能跑Pythont程式了

2. 資料夾 PyWork 則是本篇示範的程式碼 CvsReader.py 與會用到的DLL檔 CvsReader_x32.dll 和用於範例中的csv內容檔案

3. 添加一個批次檔 PyWork.bat 說明如何跑程式的動作, 內容如圖中所示,

用 set PATH 提供此console運作下的Python執行環境位置便於執行

以 -i 參數執行程式碼, 使於程式執行後維持於Python的互動模式中, 可以於程式所產生的資源環境下繼續調試程式

4. 於 PyWorkPortable 資料夾中, 直接雙擊批次檔就會跑出如本篇圖一中的執行結果了

看到這裡, 相信聰明的人都會跟我一樣的感覺, 這真是一個LAB好玩具, 也是一個IT好工具

如需此包想自行後續摸索的, 可以透過街口轉帳任意金額, 備註留信箱說明索取PyWorkPortable, 待作業完成就會寄送至所留信箱

進階參考:

於Python上使用PktEvCdll的API呼叫範例 (有Callback的示範)