Skip to main content

bitstring module

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 version supports Python 2.6 and later (including Python 3). For Python 2.4 and 2.5 you should instead download version 1.0.

Documentation

The manual for the bitstring module is available here <http://packages.python.org/bitstring>. It contains a walk-through of all the features and a complete reference section.

It is also available as a PDF as part of the source download.

Installation

If you have downloaded and unzipped the package then you need to run the setup.py script with the ‘install’ argument:

python setup.py install

You may need to run this with root privileges on Unix-like systems.

If you haven’t yet downloaded the package then you can just try:

easy_install bitstring

or

pip install bitstring

If you’re using Windows then there is an installer available from the downloads tab on the project’s homepage.

Simple Examples

Creation:

>>> a = BitArray(bin='00101')
>>> b = ConstBitArray(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
('0x1af', '0b000110101111', 431)
>>> a[10:3:-1].bin
'0b1110101'
>>> 3*a + '0b100'
BitArray('0o0657056705674')

Reading data sequentially:

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

Searching, inserting and deleting:

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

Unit Tests

The 400+ unit tests should all pass for Python 2.6 and later.


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

For more information see the project’s homepage on Google Code: <http://python-bitstring.googlecode.com>

Metadata

Release files for bitstring 2.2.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for bitstring 2.2.0
File Size Uploaded
bitstring-2.2.0.zip 584.7 kB Details

Release files / bitstring-2.2.0.zip

Download URL bitstring-2.2.0.zip
Size 584.7 kB
Tags Source
SHA-256 checksum
How to use checksums
7c39ffcc2a2d62f6ea5a0114ea903c9bafd05056c94d5385c56d04bb9d0f4a3d
BLAKE2b-256 checksum
How to use checksums
1fd039b82a160795043b0f4e83d305c898c23d0bd5cfb0c0949b976e52e9c7ab
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

4.4.0

2 release files

4.3.1

2 release files

4.3.0

2 release files

4.2.3

2 release files

4.2.2

2 release files

4.2.1

2 release files

4.2.0

2 release files

4.1.4

2 release files

4.1.3

2 release files

4.1.2

2 release files

4.1.1

2 release files

4.1.0

2 release files

4.0.2

2 release files

4.0.1

2 release files

4.0.0

2 release files

3.1.9

3 release files

3.1.8

3 release files

3.1.7

1 release file

3.1.6

3 release files

3.1.5

1 release file

3.1.4

1 release file

3.1.3

3.1.2

1 release file

3.1.1

1 release file

3.1.0

1 release file

3.0.2

1 release file

3.0.1

1 release file

3.0.0

1 release file

This release

2.2.0 This release

1 release file

2.1.1

1 release file

2.1.0

1 release file

2.0.3

1 release file

2.0.2

1 release file

1.3.0

1 release file

1.2.0

1 release file

1.1.3

1 release file

1.1.2

1 release file

1.1.1

1 release file

1.1.0

1 release file

1.0.0

1 release file

0.5.2

2 release files

0.5.1

2 release files

0.5.0

2 release files

0.4.3

1 release file

0.4.2

1 release file

0.4.0

2 release files

0.3.2

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page