跳转到主要内容

简单构建、分析和修改二进制数据。

项目描述

bitstring

bitstring 是一个Python模块,旨在尽可能简单高效地帮助创建和分析各种类型的位级二进制数据。

自2006年以来一直积极维护。

CI徽章 文档 Codacy徽章 依赖关系(via libraries.io)     Pepy总下载量 PyPI - 下载量


[!注意] 要查看新增功能、改进或修复的内容,以及下一版本中即将推出什么新功能,请参阅发行说明

概述

  • 高效存储和操作二进制数据,遵循Python的惯用用法。
  • 从十六进制、八进制、二进制、文件、格式化字符串、字节、不同字节序的整数和浮点数创建位字符串。
  • 强大的二进制打包和解包函数。
  • 位级别切片、连接、搜索、替换等。
  • 创建和操作固定长度位字符串的数组。
  • 读取并解释位字符串作为二进制数据的流。
  • 丰富的API - 很可能无论您想做什么,都有简单而优雅的方法来实现。
  • 开源软件,采用MIT许可发布。

文档

bitstring模块提供了广泛的文档。以下是一些入门点:

还有一本介绍性的笔记本教程,可在binder上找到。

示例

安装

$ pip install bitstring

创建

>>> from bitstring import Bits, BitArray, BitStream, pack
>>> a = BitArray(bin='00101')
>>> b = Bits(a_file_object)
>>> c = BitArray('0xff, 0b101, 0o65, uint6=22')
>>> d = pack('intle16, hex=a, 0b1', 100, a='0x34f')
>>> e = pack('<16h', *range(16))

不同的解释、切片和连接

>>> a = BitArray('0x3348')
>>> a.hex, a.bin, a.uint, a.float, a.bytes
('3348', '0011001101001000', 13128, 0.2275390625, b'3H')
>>> a[10:3:-1].bin
'0101100'
>>> '0b100' + 3*a
BitArray('0x866906690669, 0b000')

顺序读取数据

>>> b = BitStream('0x160120f')
>>> b.read(12).hex
'160'
>>> b.pos = 0
>>> b.read('uint12')
352
>>> b.readlist('uint12, bin3')
[288, '111']

搜索、插入和删除

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

固定长度格式的数组

>>> from bitstring import Array
>>> a = Array('uint7', [9, 100, 3, 1])
>>> a.data
BitArray('0x1390181')
>>> a[::2] *= 5
>>> a
Array('uint7', [45, 100, 15, 1])

版权(c)2006 - 2024 Scott Griffiths

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码分发

bitstring-4.2.3.tar.gz (250.5 kB 查看哈希值)

上传时间 源代码

构建分发

bitstring-4.2.3-py3-none-any.whl (71.7 kB 查看哈希值)

上传时间 Python 3

支持者