Binary file Pt 1 - Only reading some

Gabriel Genellina gagsl-py2 at
Tue Feb 5 18:54:08 CET 2008

En Tue, 05 Feb 2008 11:50:25 -0200, Mastastealth <mastastealth at>  

> On Feb 5, 1:17 am, Gabriel Genellina <gagsl-... at> wrote:
>> Using the struct module
>> import struct
>> data =
>> str1, str2, blank, height, width, num2, num3 =
>> struct.unpack("6s3s1cBBBh", data)
>> Consider this like a "first attempt", open issues: is the data little-
>> endian or big-endian? does the 0-5 mean 0x00-0x05 or "0"-"5"? the last
>> numbers are 2-byte binary integers, or 0000-0899 might indicate BDC?
>> But building the right format is surely faster and easier than parsing
>> the data by hand.
> Ah ok, thanks! That worked, though the line "str1, str2, blank,
> height, width, num2, num3 =" spit out a syntax error. However, I do
> see that it creates a tuple with all the values in a readable format
> for me. Also, I needed to change to 16. More questions:
> What is this value for? "6s3s1cBBBh" and why is my unpack limited to a
> length of "16"?

That's the format describing how to decode your bytes: first, a string of  
six characters; then a string of 3 characters followed by a single  
character, three individual bytes, and a short integer.

> Unfortunately it seems my understanding of binary is way too basic for
> what I'm dealing with. Can you point me to a simple guide to
> explaining most of it? As far as I know this is just a bunch of 1's
> and 0's right? Each byte has 8 digits of, of which somehow is
> converted to a number or letter. Don't know what most of that stuff in
> the struct page means. -_-

I'm afraid I don't know any simple guide to struct. Perhaps people think  
that if you manage binary data with struct, you must already be a Python  
guru or something...
You could try "construct" instead: "Construct is a python library for  
parsing and building of data structures (binary or textual). It is based  
on the concept of defining data structures in a declarative manner, rather  
than procedural code. [...] It's the first library that makes parsing fun,  
instead of the usual headache it is today."

There are some recipes in the Python Cookbook too:

Gabriel Genellina

More information about the Python-list mailing list