使用单个压缩表对许多对象进行Python压缩

时间:2015-09-14 16:30:34

标签: python compression zlib

考虑包含许多重复子字符串的许多(数百或数百万)相当短(约100个ascii字符)字符串。我想在Python程序中使用字符串,但压缩它们以节省空间。 大多数压缩算法(如Lempel-Ziv(LZ))使用查找表来编码压缩数据。 有没有办法使用现有的压缩库(如zlibzlib module)来执行此操作?在伪代码中,为了压缩数据,可以进行调用

table = zlib.makeTable( data )
foreach string:
    compressedString = zlib.compressString( table, string )

然后存储压缩的字符串。

1 个答案:

答案 0 :(得分:0)

它不像你说的那样有效,但有一种方法可以做我认为你要求的事情。 zlib有一个函数deflateSetDictionary(),您可以使用它来为压缩器填充32K数据,希望这些数据代表您尝试压缩的短字符串。您可以使用样本字符串和/或部分样本字符串构建它。