python struct unpack h或H alignment

时间:2014-02-14 07:39:48

标签: python struct

我正在尝试解压缩一些原始数据。 (它超过3个字节,但我把它减少到了这个。)

我不希望在以下代码中进行回溯。我是不是该?对齐是否有问题?如你所见,第二是成功的。 (我的数据是未对齐的。我可以围绕它编码,但我应该吗?)

我想,(1,770)或(1,515)我想,不是例外。

http://docs.python.org/2/library/struct.html (B = uchar,1,8和H =短,2,16)

Python 2.7.2 (default, Jun 12 2011, 15:08:59) [MSC v.1500 32 bit (Intel)] on win
32
Type "help", "copyright", "credits" or "license" for more information.
>>> from struct import *  
>>> unpack('BH', '\x01\x02\x03')  
Traceback (most recent call last):  
  File "<stdin>", line 1, in <module>
  struct.error: unpack requires a string argument of length 4
>>> unpack('HB', '\x01\x02\x03')
(513, 3)
>>>

1 个答案:

答案 0 :(得分:1)

  

注意:

     
      
  1. ...
  2.   
  3. 使用非原生大小和对齐时,不添加填充,例如使用'&lt;','&gt;','='和'!'。
  4.   

source

>>> struct.unpack('<BH', '\x01\x02\x03')
(1, 770)
>>> struct.unpack('>BH', '\x01\x02\x03')
(1, 515)