| ================ | |
| 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 | |
| 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' | |
| >>> 3*a + '0b100' | |
| BitArray('0o0657056705674') | |
| 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') | |
| >>> 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) 2014 Scott Griffiths | |
| For more information see the project's homepage on Google Code: | |
| <http://python-bitstring.googlecode.com> | |