ReZero's Utopia.

Python bz2

字数统计: 492阅读时长: 1 min
2016/11/30 Share
import bz2
un = 'BZh91AY&SYA\xaf\x82\r\x00\x00\x01\x01\x80\x02\xc0\x02\x00 \x00!\x9ah3M\x07<]\xc9\x14\xe1BA\x06\xbe\x084'
pw = 'BZh91AY&SY\x94$|\x0e\x00\x00\x00\x81\x00\x03$ \x00!\x9ah3M\x13<]\xc9\x14\xe1BBP\x91\xf08'
print bz2.BZ2Decompressor().decompress(un)
print bz2.BZ2Decompressor().decompress(pw)

bz2一种压缩算法:

> bzip2比传统的gzip或者ZIP的压缩效率更高,但是它的压缩速度较慢。从这点来说,它非常类似于出现的其它一些压缩算法。与RAR或者ZIP等其它不同的是,bzip2只是一个数据压缩工具,而不是归档工具,在这一点上它与gzip类似。程序本身不包含用于多个文件、加密或者文档切分的工具,相反按照UNIX的传统需要使用如tar或者GnuPG这样的外部工具。
在有些情况下,按照绝对压缩效率来讲bzip2不如7z和RAR格式。根据摩尔定律的持续效应,计算时间越来越少并且也变得越来越不重要,所以类似的压缩方法变得越来越流行。根据作者的说法,在所有已知的压缩算法中,bzip2可以排到百分之十到十五这样最好的一类算法中(PPM),尽管它在压缩速度时大致快两倍,而解压速度有六倍快。
bzip2使用Burrows-Wheeler transform将重复出现的字符序列转换成同样字母的字符串,然后用move-to-front transform进行处理,最后使用哈夫曼编码进行压缩。在bzip2中所有的数据块都是大小一样的纯文本数据块,它们可以用命令行变量进行选择,然后用从π的十进制表示得到的一个任意位序列标识成压缩文本。
起初,bzip2的前一代bzip在数据块排列之后使用算术编码进行压缩,由于软件专利的限制已经不再使用算术编码。
CATALOG