2013-02-05 89 views
0

我有寫入unsigned char數據塊C++應用程序。所以我會寫unsigned char data[8]蟒:將字符串轉換爲c_ubyte_Array_8

現在,我正在使用python(在python中讀取​​的功能),在我的工具中讀取並緩衝它以進行進一步處理。

問題
當我從文件中讀取數據,並把它分解成8塊,所有得到的數據是串format.I具有以下結構

class MyData(Union): 
    _fields_=[ ("data",8 * c_ubytes), ("overlap", SelfStructure) ] 

現在,我試圖通過如下數據

dataObj = MyData(str[0:8]) 

它會拋出一個錯誤,expected c_ubyte_Array_8 instance, got str。我想我需要將string轉換爲array of size 8 of c_ubyte。試用bytearray但沒有成功。請讓我知道該怎麼做。

回答

2

試試這個:

(ctypes.c_ubyte * 8)(*[ctypes.c_ubyte(ord(c)) for c in str[:8]]) 
+0

謝謝!完美工作。 –