人性化地處理二進位數據:Bitstream
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
※限時領取|45講人工智慧與python入門課程
※【限量閃購】《決戰618》僅售55元包郵,只有兩本
TAG:Python程序員 |