Convert between strings and binary data

Link: http://www.doughellmann.com/PyMOTW/struct/

import structimport binasciis = struct.Struct('I 2s f')values = (1, 'ab', 2.7)print 'Original:', valuesprintprint 'ctypes string buffer'import ctypesb = ctypes.create_string_buffer(s.size)print 'Before  :', binascii.hexlify(b.raw)s.pack_into(b, 0, *values)print 'After   :', binascii.hexlify(b.raw)print 'Unpacked:', s.unpack_from(b, 0)printprint 'array'import arraya = array.array('c', '\0' * s.size)print 'Before  :', binascii.hexlify(a)s.pack_into(a, 0, *values)print 'After   :', binascii.hexlify(a)print 'Unpacked:', s.unpack_from(a, 0)

$ python struct_buffers.py  Original: (1, 'ab', 2.7)  ctypes string buffer Before  : 000000000000000000000000 After   : 0100000061620000cdcc2c40 Unpacked: (1, 'ab', 2.700000047683716)  array Before  : 000000000000000000000000 After   : 0100000061620000cdcc2c40 Unpacked: (1, 'ab', 2.700000047683716)