Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发。
Bitstream 是一个python的第三方库,以位流的形式管理二进制数据:
如果你需要处理现在已知的二进制文件格式、设计自己需要的二进制格式、或探索数据压缩算法等等,但python标准库满足不了你的需要,这个时候可以试试Bitstream。可以查看 example applications是否满足你的需求。主要特征有以下几个方面。
易于使用
位流是一个简单的抽象概念,其行为就像交流频道。只能在一端写入数据,在另一端读取数据。使用这个库,只需要知道如何创建流,写入,读取就可以了。
这个简单的管理二进制数据的方法可以满足绝大部分使用需求。比python标准库中处理此类任务的 struct和array更简单。
在位和字节的级别工作
压缩编码(例如霍夫曼编码)并不总是以全部字节数来表示数据。由于位流支持位而不仅仅是字节,所以代码可以使用相同的API来实现。比如一个自然数的序列的一元编码只需要几行。
支持python和numpy数据类型
Bitsteam内置对标准二进制输出的常用数据类型的支持:布尔值、字节、固定宽度的整型,浮点整型。
Numpy数组可以很方便的处理同类数据序列:
更多细节请查看 Built-in types
高级特性
性能. Bitsteam是一个C语音扩展的python模块,由Cython语音和编译器来生成,已经对常用需求进行了优化。希望它的速度能满足您的需求。
自定义数据类型. 受支持的类型和二进制表示的列表可以随意扩大:新的读者和编写者可以实现和关联特定的数据类型。请查看Custom types.
快照. 有时候,比如当需要查看流而不消耗其内容时,流这个方法就太过简单。快照是解决这类问题的流模型的一个扩展,因为它可以提供一个‘时光机’来将流恢复到一个较早的状态。请查看Snapshots.
开源
Bitstream在MIT license下分发,开发及发布分别在GitHub和PyPI上。
英文原文:http://boisgera.github.io/bitstream/
译者:Chris