Struct Example#

Question#

Using the structure module in python for serialization and deserialization.

Solution#

#!/usr/bin/python
"""
$Id$

Purpose:
    Demonstrate the way the struct module works.

Description:
   One can access substrings of a string in a arbitrary manner while using the
   struct module. This is mostly useful when dealing with byte level
   programming required in embedded systems or while using sockets.

Source:
   Python cookbook perhaps.
"""
import struct
theline = "The quick brown fox jumped over the lazy dog."
# Get a 5-byte string, skip 3, get two 8-byte string, then all the rest:
baseformat = '5s 3x 8s 8s'
# by how many bytes does theline exceed the length implied by this
# base-format ( 24 bytes in this, but struct.calcsize is general)
numremain = len(theline) - struct.calcsize(baseformat)
# complete the format with the appropriate 's' field, then unpack
format = '%s %ds' % (baseformat, numremain)
l, s1, s2, t = struct.unpack(format, theline)
print(l)
print(s1)
print(s2)
print(t)

Explanation#