tb

thread-bitstring

A Python module to help you manage your bits

Showing:

Popularity

Downloads/wk

0

GitHub Stars

284

Maintenance

Last Commit

2mos ago

Contributors

10

Package

Dependencies

0

License

The MIT License: http://www.opensource.org/licenses/mit-license.php

Categories

Readme

.. image:: /doc/bitstring_logo_small.png

bitstring is a pure Python module designed to help make the creation and analysis of binary data as simple and natural as possible.

Bitstrings can be constructed from integers (big and little endian), hex, octal, binary, strings or files. They can be sliced, joined, reversed, inserted into, overwritten, etc. with simple functions or slice notation. They can also be read from, searched and replaced, and navigated in, similar to a file or stream.

bitstring is open source software, and has been released under the MIT licence.

This module works in both Python 2.7 and Python 3.6+.

Installation

Probably all you need to do is::

 pip install bitstring     

Documentation

The manual for the bitstring module is available here https://bitstring.readthedocs.org. It contains a walk-through of all the features and a complete reference section.

It is also available as a PDF at https://readthedocs.org/projects/bitstring/downloads/pdf/latest/.

Simple Examples

Creation::

 >>> a = BitArray(bin='00101')
 >>> b = Bits(a_file_object)
 >>> c = BitArray('0xff, 0b101, 0o65, uint:6=22')
 >>> d = pack('intle:16, hex=a, 0b1', 100, a='0x34f')
 >>> e = pack('<16h', *range(16))

Different interpretations, slicing and concatenation::

 >>> a = BitArray('0x1af')
 >>> a.hex, a.bin, a.uint
 ('1af', '000110101111', 431)
 >>> a[10:3:-1].bin
 '1110101'
 >>> '0b100' + 3*a
 BitArray('0x835e35e35, 0b111')

Reading data sequentially::

 >>> b = BitStream('0x160120f')
 >>> b.read(12).hex
 '160'
 >>> b.pos = 0
 >>> b.read('uint:12')
 352
 >>> b.readlist('uint:12, bin:3')
 [288, '111']

Searching, inserting and deleting::

 >>> c = BitArray('0b00010010010010001111')   # c.hex == '0x1248f'
 >>> c.find('0x48')
 (8,)
 >>> c.replace('0b001', '0xabc')
 >>> c.insert('0b0000', pos=3)
 >>> del c[12:16]

Unit Tests

The 500+ unit tests should all pass for Python 2.7 and later. To run them, from the test directory run::

 python -m unittest discover

The bitstring module has been released as open source under the MIT License. Copyright (c) 2006 Scott Griffiths

For more information see the project's homepage on GitHub: https://github.com/scott-griffiths/bitstring

Rate & Review

Great Documentation0
Easy to Use0
Performant0
Highly Customizable0
Bleeding Edge0
Responsive Maintainers0
Poor Documentation0
Hard to Use0
Slow0
Buggy0
Abandoned0
Unwelcoming Community0
100
No reviews found
Be the first to rate

Alternatives

No alternatives found

Tutorials

No tutorials found
Add a tutorial