title: struct.error: unpack requires a string argument of length 4
body: <p>Python says I need 4 bytes for a format code of "BH":</p>
  
  <pre><code>struct.error: unpack requires a string argument of length 4
  </code></pre>
  
  <p>Here is the code, I am putting in 3 bytes as I think is needed:</p>
  
  <pre><code>major, minor = struct.unpack("BH", self.fp.read(3))
  </code></pre>
  
  <p>"B" Unsigned char (1 byte) + "H" Unsigned short (2 bytes) = 3 bytes (!?)</p>
  
  <p>struct.calcsize("BH") says 4 bytes.</p>
  
  <p>EDIT: The file is ~800 MB and this is in the first few bytes of the file so I'm fairly certain there's data left to be read.</p>