Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Python byte buffer object?

Tags:

python

buffer

Is there a byte buffer object in Python to which I can append values of specific types? (preferably with specifiable endianess)

For example:

buf.add_int(4)    # should add a 4 byte integer
buf.add_short(10) # should add a 2 byte short
buf.add_byte(24)  # should add a byte

I know that I could just use struct.pack but this approach just seems easier. Ideally it should be like the DataOutputStream and DataInputStream objects in Java which do this exact task.

like image 650
Kristina Brooks Avatar asked Jul 31 '11 21:07

Kristina Brooks


1 Answers

You can always use bitstring. It is capable of doing all the things you ask and more.

>>> import bitstring
>>> stream=bitstring.BitStream()
>>> stream.append("int:32=4")
>>> stream.append("int:16=10")
>>> stream.append("int:8=24")
>>> stream
BitStream('0x00000004000a18')
>>> stream.bytes
'\x00\x00\x00\x04\x00\n\x18'

Here is a link to the documentation.

like image 100
Utku Zihnioglu Avatar answered Sep 26 '22 06:09

Utku Zihnioglu