2010-10-11 41 views
0

我看了網絡上,在這裏,但我沒有找到一個答案: 這裏是我的代碼EOF同時掃描三引號字符串常量

zlib.decompress(""" 
xワᆳヤ=ラᄇHナs~Ʀᄑç\ムîà 
[email protected]ÑÁÔQÇlxÇÆïPP~ýVãì゙M6ÛÐ|ê֭ᄁᄂヤ=)}éÓUe﬿ö3ᄎᄌú"}ʿïÿ÷1þ8ñ́U÷ᄏñíLÒVi:`ᄈᄎL!Ê҆p6-%Fë^ヘ÷à,Q.K!ユô`ÄA!ÑêweÌ ÊÚAロYøøÂjôóᅠÂcñ䊧fᆴùテúN :nüzAÝ7%ᄌcdUタᄌ3ôPۂタlンyHᆲᄑ$/yzᄒíàヌ'ÕÓ&`|S!<'ᄂ÷Zļᄐ2ホモ;ニ(ÅÛfb!úü$ナテᄒ,9ßhàPᄎᄄێフÑbØὛホQᄍ-Ü}(n;ᄄホLヤ\^ï9ᆭᄍラDdВéÞ|åPOGᄂÐÙ%â&AÔë)ÎTÐC ᄐïc樞í%Èï!フᄋëiq*ᄌVKÐNᄡ[ᄁfOq{OᆭÆÊ,0GᄂリmtツᄈOᄌΥ$#îヘqbYᄆメUニᄉÞáP` 
ヨ×ᆵÃPwaレǩâ×)ハFcêÚ=!Åöᄊ 
)AFñᄈ/cMᄃ!NóNΈór?pàÜòXw 
Bvæ0ïçIÉoマ>5pᆭ-ØWÚNᄆùFᄆØPçÃþdᅠ;ル1[Oᄈホ~6ツᄈᆬŕìᄄޠ=øð@ネV﾿ᄅ)÷%ユÜib{HᄆKŅVlDCテîfÑWì÷ìáár.ワîv﾿<dᄎn~ú*ÁÕ7ýá}EsYᆵWᄂÈ:R×ãQңメ?Ø1vヘäツ~èR1ᄉÜ*ᄡónAᆬjmNoツユᄈÌښᆬf[8ᆭÛ>゙OWラ|ÌbDᄁÖ녡M=Ð÷èâミム'ÂÝÐ ;ë mᄎQÂäԤۢ:モᄆdᄎᄑLȂ1ᄈ_÷YZᆲNòÛ â\ロxÐlݵᆵムᆱøm5Ëá=ïoÍlMᆪ[×#Ypᅠトx[ÉÊyæツoモナz)ᆭᄀÝÏìò 
""") 

所以這是一個字符串,我得到了通過zlib.compress另一個字符串。 我該如何解壓這個字符串? Registers Bussiere

+5

這個問題提出了一個令人信服的理由「跆拳道?」標籤。 – 2010-10-11 09:55:49

回答

2

如果您將zlib.compress的輸出傳遞給zlib.decompress,它應該可以工作。

由於壓縮字符串實際上不是文本,它是一個二進制字符串。它不會像你發現的那樣友好地顯示給終端。

您可以使用base64編碼,從而給你的東西安全地放到單元測試代碼,粘貼到代碼等

>>> import zlib 
>>> a = zlib.compress('fooo') 
>>> b = a.encode('base64') 
>>> b 
'eJxLy8/PBwAENgG0\n' 
>>> c = 'eJxLy8/PBwAENgG0\n'.decode('base64') 
>>> zlib.decompress(c) 
'fooo' 
>>> zlib.decompress(a) 
'fooo' 

一個作爲輸出是好的二進制傳輸或保存到一個文件中。

b友好與剪貼板使用,發送電子郵件等

0

我不會在這種表示。在其他代碼中使用repr()來生成ASCII清晰表示,然後使用它。然後在結果中查找三重引號並將其分解。

+0

我也將使用base64 repr,但你的答案幫助我感謝和問候。 – user462794 2010-10-11 11:24:03