在python中压缩Zlib

CSc*_*f x 6 python compression

为什么压缩字符串的大小更大?zlib不需要压缩吗??

例子:

import zlib
import sys

str1 = "abcdefghijklmnopqrstuvwxyz"
print "size1: ", sys.getsizeof(str1)

print "size2: ", sys.getsizeof(zlib.compress(str1))
Run Code Online (Sandbox Code Playgroud)

输出:

size1:  47
size2:  55
Run Code Online (Sandbox Code Playgroud)

Gra*_*ams 3

你将很难压缩这样的字符串。它相当短,包含 26 个独特的字符。压缩器通过将字节值分配给常见单词、字符等来工作,因此如果使用所有唯一字符,性能会很差。

如果数据是随机的,您的性能也会很差。

这是一个具有相同长度的压缩字符串的示例。

>>> str2 = 'a'*26
>>> str2
'aaaaaaaaaaaaaaaaaaaaaaaaaa'
>>> sys.getsizeof(str2)
63
>>> sys.getsizeof(zlib.compress(str2))
48
Run Code Online (Sandbox Code Playgroud)

  • 是的,确实压缩了,一章是11353,压缩后是4902。谢谢! (3认同)