Я пытаюсь использовать Zlib для сжатия текста.
Например, у меня есть строка T='blah blah blah blah'
Мне нужно сжать ее для этой строки. Я использую S=zlib.compress(T)
, чтобы сжать его. Теперь я хочу получить недвоичную форму S
, чтобы я мог распаковать T
, но в другой программе.
Спасибо!
РЕДАКТИРОВАТЬ: Я думаю, у меня есть метод, чтобы решить, что я хотел. Вот метод:
import zlib, base64
text = 'STACK OVERFLOW STACK OVERFLOW STACK OVERFLOW STACK OVERFLOW STACK OVERFLOW STACK OVERFLOW STACK OVERFLOW STACK OVERFLOW STACK OVERFLOW STACK OVERFLOW '
code = base64.b64encode(zlib.compress(text,9))
print code
Что дает:
eNoLDnF09lbwD3MNcvPxD1cIHhxcAE9UKaU=
Теперь я могу скопировать этот код в другую программу, чтобы вернуть исходную переменную:
import zlib, base64
s='eNoLDnF09lbwD3MNcvPxD1cIHhxcAE9UKaU='
data = zlib.decompress(base64.b64decode(s))
print data
Пожалуйста, предложите, если вам известен какой-либо другой метод сжатия, который дал бы лучшие результаты, соответствующие приведенному выше коду .