於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的示範)