title: Why does python's struct think little-endian and big-endian imply different lengths?
body: <p>I thought that little-endian and big-endian numbers were the same size (in bytes). But python 2.7's struct module says this:</p>
  
  <pre><code>In [46]: struct.unpack('&gt;L', datalen[4:8])[0]
  Out[46]: 35098131
  
  In [47]: struct.unpack('L', datalen[4:8])[0]
  ---------------------------------------------------------------------------
  error                                     Traceback (most recent call last)
  &lt;ipython-input-47-f18e2a303d6c&gt; in &lt;module&gt;()
  ----&gt; 1 struct.unpack('L', datalen[4:8])[0]
  
  error: unpack requires a string argument of length 8
  </code></pre>
  
  <p>Why is the big endian long 4 bytes but struct expects the little-endian long to be 8 bytes?</p>