Reading binary data

Terry Reedy tjreedy at udel.edu
Wed Sep 10 20:46:50 EDT 2008



Aaron Scott wrote:
> Taking everything into consideration, my code is now:
> 
> import struct
> file = open("test.gde", "rb")
> signature = file.read(3)
> version, attr_count = struct.unpack('II', file.read(8))
> print signature, version, attr_count
> for idx in xrange(attr_count):
> 	attr_id, attr_val_len = struct.unpack('II', file.read(8))
> 	attr_val = file.read(attr_val_len)
> 	print attr_id, attr_val_len, attr_val
> file.close()
> 
> which gives a result of:
> 
> GDE 2 2
> 1 4 é
> 2 4 ê Å
> 
> Essentially, the same results I was originally getting :

It appears that your 4-byte attribute values are not what you were 
expecting.  Do you have separate info on the supposed contents?  In any 
case, I would print repr(attr_val) and even for c in attr_val: 
print(ord(c)).

tjr





More information about the Python-list mailing list