What is the best way to do Bit Field manipulation in Python?我正在通过UDP读取一些MPEG传输流协议,并且其中包含一些时髦的位域(例如,长度为13)。我正在使用" struct \\"库进行广泛的解压缩,但是有一种简单的方式说"获取下13位",而不必手动调整位操作吗?我想要类似C处理位字段的方式(不必还原为C)。 建议? bitstring模块旨在解决此问题。它使您可以使用位作为基本构建块来读取,修改和构造数据。最新版本适用于Python 2.6或更高版本(包括Python 3),但1.0版也支持Python 2.4和2.5。 与您相关的示例可能是这样,它从传输流中删除所有空包(并且很可能使用您的13位字段?):
这里是另一个示例,包括从位流中读取:
您可以使用标准的切片符号在位级别切片,删除,反向,覆盖等,并且具有位级别的查找,替换,拆分等功能。还支持不同的字节序。
完整的文档在这里。 这是一个经常提出的问题。过去曾为我提供过ASPN Cookbook条目。 一个人想要从执行此操作的模块中看到的需求页面很宽。 |