Comment compresser une chaîne de caractères, et obtenir une chaîne de caractères de retour à l'aide de la librairie zlib?

J'essaie d'utiliser Zlib pour la compression de texte.

Par exemple, j'ai une chaîne T='blah blah blah blah' j'ai besoin de le compresser pour cette chaîne. Je suis à l'aide de S=zlib.compress(T) de le compresser. Maintenant ce que je veux, c'est d'obtenir la non-forme binaire de S afin que je puisse décompresser T mais dans un autre programme.

Merci!

EDIT: je suppose que je suis d'une méthode pour résoudre ce que je voulais. Voici la méthode:

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

Qui donne:

eNoLDnF09lbwD3MNcvPxD1cIHhxcAE9UKaU=

Maintenant, je peux copier ce code à un autre programme pour obtenir la variable d'origine de retour:

import zlib, base64
s='eNoLDnF09lbwD3MNcvPxD1cIHhxcAE9UKaU='
data = zlib.decompress(base64.b64decode(s))
print data

Veuillez indiquer si vous êtes au courant de toute autre méthode de compression qui permettrait de donner de meilleurs résultats qui sont cohérents avec le code ci-dessus.

Utilisation de la librairie zlib décompresser S ?
Ce qui vous empêche d'utiliser zlib.décompresser() dans cet autre programme?
Allez-vous accepter ma réponse à votre question précédente? Qui pourrait m'encourager à vous aider avec cette question. Je comprends maintenant ce que vous obtenez.
Comment puis-je imprimer S de sorte que je peux l'utiliser dans un autre programme ?
Note compression vraiment des petites chaînes, les frais généraux grâce à la compression de données est susceptible d'être plus longue que la chaîne d'origine...

OriginalL'auteur Quixotic | 2011-01-30