Сжать строки в python можно с помощью функций encode/decode :
def print_strinfo( _instr, _title="" ):
print _title, ":",_instr
print " "*len(_title), ":",len(_instr), " bytes"
print
_test_str = u"Massssse 4444 555555555555 888888888888888888888888"
print_strinfo( _test_str, "TEXT" )
_test1_zip = _test_str.encode('zip')
print_strinfo( _test1_zip, "ZIP" )
_test1_unzip = _test1_zip.decode('zip')
print_strinfo( _test1_unzip, "UNZIP" )
Вывод:
Python 2.7.10 (default, May 23 2015, 09:40:32) on Windows (32 bits).
TEXT : Massssse 4444 555555555555 888888888888888888888888
: 51 bytes
ZIP : 'x\x9c\xf3M,\x06\x81T\x05\x13 P0E\x02\n\x168\x00\x00[\x82\x0c?'
: 24 bytes
UNZIP : Massssse 4444 555555555555 888888888888888888888888
: 51 bytes
Ещё:
s = 'hello world!!! Привет'
a = s.encode('bz2')
b = s.encode('zip')
c = s.encode('hex')
d = s.encode('base64')
print a.decode('bz2')
print b.decode('zip')
print c.decode('hex')
print d.decode('base64')
hex - преобразование в hex строку
base64 - преобразование в MIME base64 (в котором ходит почта)
|