2016-04-25 18 views
0

をコードする 「\ X1F \ x8B \ X08 \ X00 \ X00 \ X00 \ X00 \ X00 \ X00 \ x00UP] K \ XC3 \ X14 \ XFD + \ XC3 \ XE7 \ XCD \ xA8 \ xF9X \ XE2 \ xEBX \ XA1 \ x0CF \ X1F XBA署名\ \%\ X10 \ XAC \ XB1 \ XAD \ xC4h \ x88f%\ x8C \ XFD \ XF7] \ X1B \ XAD \ XDA \ XF8 \ xE29 \ xE7z \ xEE9〜#\ XE7 \ x11G \ XAF \ XBB \ X1C = \ X22 \ xDFv_j \ x04H + @ \ xBAW \ X1A \ xEEe \ X91> SF \ X18 + I \ x9Ef \ X04 \ X84 \ XA1; \ X02 /] \ x8F \ xA5Q \ XC2 \ XF6 \ XC2 \ x075 \ XE2 \ xFE8 \ x89 \ xB1m \ XA4 \ X85 \ x89V \ XFB \ XC1 \ X88 \ X19 \ xA6 \ XDE \ XB6 \ x1Fe \ xB6y \ X08 \ XCA \のx87 \ xA7N \ XCD \ X1E \ XC4^H \ X10 \ XF6 \ X19 \ X19/\ x14g \ x92K \ XC1 [\ X06 \ XCA \ XB2 \ x9Ca \ x82K @ \ x07m \ x8F x17B \ \ x98 \ XC1 \ XD7 \ xC9a2 \ xA6 \ xD9W \ xA4j \ XbaIで\ x9E X84の\測定\ \ X93 \ x7F \ x80g \ x18N \ x9D錆、\ \ XEA x84fyJIAI \ XCE「\ \ XAF \ xC6:\ xB9 \ xE0 \ X0B \ XF6 XDA \ \ xA8 \ x95qg0 \ x8FE \ x87Ke \ x86iQbZU \ x98 \ x924 \ XD6 \ X1C]; \ xC9 \ xB0n \ xA3Jhd \ x8C \ X08 \ xB7 \ XCF \ x1AN \ XCE \ xAA- | R \ X94 \ XB3 \ X82 \ xA6 \ xE0 \ x902v \ X19 \ XB4 * Lの\ XE7 * \ x9F錆\ \ XD5 \ X1A \ X88 \ XB3> \ xE8 \ XBF \ X85 \ xC1u \ XCA \ x22n \ XA1 \ x11の\ XA4 \ x99wj |!\ X17 \ x8B \ x0F \ X86 \ XF2 \ x8D \ x8C \ xE5 \ X85 \ x0Cn \ x9Co \ xDBt \のXeF \ XF5 xF2X \ X1A \ \ xADlx9 \ x09k \ X95 \ xB9 \ x9A \ xC8 DTI + \ XB0 \ xD116 \ XFA \ xF9 \ X05 \ xBAs \ xAET \ xE0 \ X01 \ X00 \ X00「Pythonの私は、この文字列を解凍したいGzipで文字列

この文字列は、私は分を解凍したい、Gzipで符号化によって圧縮されるので、私はそう私はPythonは使用し、ファイルにこの文字列を保存し、そのつもり仕事ではありません解凍したファイルを読み込みますインタプリタモードとは、私は、これは文字セットの問題であると仮定したコードは、仕事

あるコマンドラインの文字列を貼り付けますが、私はそれを修正することはできません!私は、誰かが解決策を与えることを願っています! 私のコードはフェラで、作業環境は、Linuxです。

import zlib 

    file_obj=open("compress_data.log","r+") 

    for gz_data in file_obj.readlines(): 

     print gz_data 

     decompressed_data = zlib.decompress(gz_data, 16+zlib.MAX_WBITS) 

     print decompressed_data 
+0

のStringIOモジュールを使用しています。 –

+0

'file_obj =たStringIO(gzip_string)。 decompressed_data = zlib.decompress(もしfileobj = file_obj) ' –

+0

エラーMSG「文字列または読み取り専用バッファではなく、インスタンスでなければなりません」 – liyang

答えて

1

そのデータは、 "Gzipで" の形式です。 Pythonのビルトインgzip libraryを使用してみてください。そのデータの発信元がディスク・ファイルがある場合は

、これを試してみてください。

import gzip 

for data in gzip.GzipFile("compress_data.log"): 
    print data 

をそのデータの原点はPython文字列である場合は、これを試してみてください。

import gzip 
import StringIO 

compressed_data = "\x1F\x8B\x08\x00\x00\x00\x00\x00\x00\x00UP]k\xC3 \x14\xFD+\xC3\xE7\xCD\xA8\xF9X\xE2\xEBX\xA1\x0CF\x1F\xBA\xEE%\x10\xAC\xB1\xAD\xC4h\x88f%\x8C\xFD\xF7]\x1B\xDA\xAD\xF8\xE29\xE7z\xEE9~#\xE7\x11G\xAF\xBB\x1C=\x22\xDFv_j\[email protected]\xBAW\x1A\xEEe\x91>SF\x18+i\x9Ef\x04\x84\xA1;\x02/]\x8F\xA5Q\xC2\xF6\xC2\x075\xE2\xFE8\x89\xB1m\xA4\x85\x89V\xFB\xC1\x88\x19\xA6\xDE\xB6\x1Fe\xB6y\x08\xCA\x87\xA7N\xCD\x1E\xC4^H\x10\xF6\x19'\x19/\x14g\x92K\xC1[\x06\xCA\xB2\x9Ca\[email protected]\x07m\x8F\x17B\x98\xC1\xD7\xC9a2\xA6\xD9W\xA4j\xBAI\x9E\x84\xAB\x93\x7F\x80g\x18N\x9D,\xEB\xEA\x84fyJIAI\xCE'\xAF\xC6:\xB9\x0B\xE0\xF6\xDA\xA8\x95qg0\x8FE\x87Ke\x86iQbZU\x98\x924\xD6\x1C];\xC9\xB0n\xA3Jhd\x8C\x08\xB7\xCF\x1AN\xCE\xAA-|R\x94\xB3\x82\xA6\xE0\x902v\x19\xB4*l\xE7!*\x9F\xEB\xD5\x1A\x88\xB3>\xE8\xBF\x85\xC1u\xCA\x22n\xA1\x11\xA4\x99wj|\x17\x8B\x0F\x86\xF2\x8D\x8C\xE5\x85\x0Cn\x9Co\xDBt\xEF\xF5\xF2X\x1A\xADlx9\x09k\x95\xB9\x9A\xC8+DtI\xB0\xD116\xFA\xF9\x05\xBAs\xAET\xE0\x01\x00\x00" 

compressed_data = StringIO.StringIO(compressed_data) 

for data in gzip.GzipFile(fileobj=compressed_data): 
    print data 

のデータがある場合PythonのエスケープシーケンスでASCIIテキストとしてディスクファイルに保存され、その後、このプログラムはあなたのために働くかもしれない:

from gzip import GzipFile 
from StringIO import StringIO 

with open("compress_data.log") as file_obj: 
    gz_data = file_obj.read().rstrip('\n') 
unescaped_data = gz_data.decode('string_escape') 
decompressed_data = GzipFile(fileobj=StringIO(unescaped_data)).read() 
print decompressed_data 

注:場合上記のプログラムはあなたのために働く、あなたのデータは無意味なフォーマットです。これはおそらく、データを作成したプログラムのバグの結果です。

+0

私compress_data.logは、「非常に長い行を持つASCIIテキスト」であるとビングのソリューションは、うまく動作しません! – liyang

+0

は私の最近の編集を参照してください。 –

+0

OKこの問題は、解決のおかげでロブです! – liyang

関連する問題