Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Python Bitstream implementations

I am writing a huffman implementation in Python as a learning exercise. I have got to the point of writing out my variable length huffman codes to a buffer (or file). Only to find there does not seem to be a bitstream class implemented by Python! I have had a look at the array and struct modules but they do not seem to do what I need without extra work.

A bit of goggling turned up this bitstream implementation, which is more like what I am wanting. Is there really no comparable bitstream class in the Python standard library?

like image 838
Danielb Avatar asked Mar 15 '10 20:03

Danielb


Video Answer


1 Answers

You're right that there's nothing in the standard library, but have you tried the bitstring module? It's pretty much designed for this kind of application, is stable and well documented, so I think it should suit your needs.

Construction, reading, slicing, etc. are all done bitwise, and it's pure Python. I've seen Huffman coding examples done with it quite successfully in the past.

Another good option is bitarray, which doesn't have as many features but can be considerably faster as it's a C extension. As a bonus it has a Huffman coding example distributed as part of the source package.

like image 166
Scott Griffiths Avatar answered Oct 05 '22 09:10

Scott Griffiths