標籤:

LabVIEW和Python二進位數據文件互操作

我們知道LabVIEW和Python交互數據處理二維數組時,使用純文本是最方便的(np.txtsave() 和np.txtload()),可以完整保留數據和維度信息。

不過文本的讀取效率相對來說低一些,所以二進位數據文件的讀寫也是必不可少的。

首先要考慮的是端序的問題,在Windows平台下,LabVIEW默認是大端序big endian,Python默認是小端序little endian,但是無論LabVIEW還是Python,讀取或者寫入文件都是可以配置端序的,所以只要約定好統一的端序即可。

其次二維數組在Python和LabVIEW中保存時各有特點,因此要分情況討論:

Python寫,LabVIEW讀

Python二進位寫二維數組時,有兩種格式:包含文件頭的npy(np.save() &

np.load() )和不包含維數信息的bin(np.tofile()

& np.fromfile())文件,npy去掉文件頭和bin文件的內容是一致的,都是數據依次按照一維展開。而npy的文件頭包含了文本形式的數據類型、端序、維數信息,只要解析出來就可以正常恢復二維數組。

LabVIEW寫,Python讀

LabVIEW寫入二維數組時可以選擇是否追加文件頭,不追加的時候就和python的bin文件一致,實際上就是一維數組,而選擇追加時,前邊會有兩個I32數據保存二維數組的維數信息,所以LabVIEW保存的二進位文件只要解析了文件頭就可以用python正常讀取。

擴展維數

對於多維數據,LabVIEW二進位文件和Python的NPY都會擴展文件頭信息,只要做對應的解析後就可以正常讀寫。

而不追加文件頭的LabVIEW二進位文件和Python的二進位文件,仍然是一維連續數組,只要從其他地方能恢復維數信息,是可以互相兼容的。

推薦閱讀:

python論壇和資源
3分鐘帶你了解SQL高級操作
Python · 樸素貝葉斯(一)· 框架

TAG:LabVIEW | Python |