我有一個二進制文件,我正在讀取其中一些2字節值以'反向'字節順序(小端?)存儲,例如。如何切換二進制數據的字節順序
1D 00 13 00 27 00 3B 00 45 00 31 00 4F
創建這些值的原始程序在內部將它們存儲爲短褲。這些值應該對應於:29,19,39,59,69,49,79。我試圖使用python 2.6.5讀取這些值(儘管這可能會在更老的系統上運行,例如2.3和2.4) 。
我使用
val1, val2, val3, val4, val5, val6, val7 = struct.unpack("1h 1h 1h 1h 1h 1h 1h", data)
嘗試,當然,這些值都出來了錯:
7427
4864
9984
15104
17664
12544
20224
看的結構的文檔後,我想我能使用類似
val1, ... = struct.unpack("!h !h ...
但是當測試,我只得到了
struct.error: bad char in struct format
如何使用正確的字節順序解壓縮這些值?我堅持閱讀兩個字節分開然後重新組裝它們在Python代碼?
啊哈,就是這樣。我在格式字符串中有幾個格式說明符,但只將字節順序char放在'h'說明符的前面,而不是放在整個字符串的開頭。謝謝! – pfyon