2016-05-04 7 views
1

私はちょうどそれがhase base64エンコーディングもgzip圧縮された文字列であるテキストの文字列を膨張/伸長することが可能ですか?python - gzipped、base64dの文字列を拡張する方法

例えば、すべてのpythonの例は、ファイルを開くことに焦点を当てているようですが、gzipped文字列で作業したいと思います。

+0

I何の入力に適用されるこれらのアルゴリズムどこオーデル?サンプルがありますか? –

+0

ヒントとして、 'gzip'と' base64'という(組み込みの)Pythonモジュールがあります。必要なツールがすべて入っているはずです。 https://docs.python.org/2/library/gzip.html – sebastian

答えて

1

あなたは、base64とzlibのライブラリを使用することができます。

import base64, zlib 
decoded_data = base64.b64decode(zlib.decompress(encoded_data)) 

のgzipモジュールは、ファイル操作のためだけである:https://docs.python.org/2/library/gzip.html。 実際の圧縮/解凍にはzlibを使用します。

1

gzipモジュールのGzipFileモジュールでは、fileobj引数を指定できます。文字列が本当にあるならばはgzip圧縮された:あなたがStringIOオブジェクト内の文字列を折り返すとのpython3の下周り

import base64 
import gzip 
from io import StringIO 

gzippedstr = fetchgzippedstr() # wherever it may come from 
gzcontent = gzip.GzipFile(fileobj=StringIO(gzippedstr)) 
b64content = gzcontent.read() 
content = base64.b64decode(b64content) 
1

それを渡すことができます(すなわち、それは適切なヘッダを持っている)、他の回答は私が、私を助けていません見つかったこの:

import base64 
import zlib 
data = 'H4sIAAAAAAAAAHWPwQqCQBCGX0Xm7EFtK+smZBEUgXoLCdMhFtKV3akI8d0bLYmibvPPN3wz00CJxmQnTO41whwWQRIctmEcB6sQbFC3CjW3XW8kxpOpP+OC22d1Wml1qZkQGtoMsScxaczKN3plG8zlaHIta5KqWsozoTYw3/djzwhpLwivWFGHGpAFe7DL68JlBUk+l7KSN7tCOEJ4M3/qOI49vMHj+zCKdlFqLaU2ZHV2a4Ct/an0/ivdX8oYc1UVX860fQDQiMdxRQEAAA==' 

json_str = zlib.decompress(base64.b64decode(data), 16 + zlib.MAX_WBITS).decode('utf-8') 

希望これは役立ちます

+0

素晴らしい!他の答えも私を助けなかった、あなたのものは完璧です! ありがとう! – VivienG

関連する問題