2010年1月25日

read binary file and convert to binary tuple

因為 file.read( ) 的傳回值是 string。所以沒辦法用 %X 印出。
也沒辦法用數值比較(?)。

所以讀進來後,要用 struct.unpack( )把 string 解譯為 binary。

unpack 的用法是:

unpack(fmt,string)

fmt 格式字串
string 要被轉換的 string

要一個一個 byte 的轉為 unsigned char ,要用 'B'。
'B' 前面還要指定總共要轉幾個 byte。
又,unpack 傳回的是 tuple,所以一次把所有的 string 轉成一個 unsigned char tunple,
要先寫好 fmt:

fmtstring = repr(len(readstring)) + 'B'

然後再轉:

data = unpack(fmtstring,readstring)

也可以寫在一起:

data = unpack(repr(len(readstring))+'B',readstring)

沒有留言:

張貼留言