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 :( -- http://mail.python.org/mailman/listinfo/python-list