packing various bytes in python via struct module
>>> struct.calcsize('b')
1
>>> struct.calcsize('bbb')
3
>>> struct.pack('b', 2)
'\x02'
>>> struct.pack('i', 2)
'\x02\x00\x00\x00'
>>> struct.pack('l', 2)
'\x02\x00\x00\x00\x00\x00\x00\x00'
>>> f = struct.pack('ii', 2, 8)
>>> f
'\x02\x00\x00\x00\x08\x00\x00\x00'
>>> struct.unpack_from(4, f)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: Struct() argument 1 must be string, not int
>>> struct.unpack_from('i', f, offset=4)
(8,)
>>> struct.unpack_from('i', f, offset=4)[0] + 1
9
>>> f.write(struct.pack('iiii', 500, 500, 400, 400))
>>> f.read()
' 44]BBB\x01'
>>> f.seek(0)
>>> struct.unpack('ii', f.read(8))
(500, 500)