2011-10-02 137 views
-1

我在學習Python,目前正在做一些在線練習。其中之一涉及閱讀zip文件。Python讀取二進制文件中的二進制數據到字符串?

當我這樣做:

import zipfile 
zp=zipfile.ZipFile('MyZip.zip') 
print(zp.read('MyText.txt')) 

它打印:

b'Hello World' 

我只是想用的 「Hello World」 的字符串。我知道這是愚蠢的,但我能想到的唯一的辦法就是要做到:

import re 
re.match("b'(.*)'",zp.read('MyText.txt')) 

我應該怎麼辦呢?

+0

@約翰,它使「b'Hello世界'」 – mowwwalker

+0

我傻眼了,這沒有得到標記爲可能重複和關閉秒。 – mowwwalker

+1

鑑於我有時候覺得Python越來越複雜,並且在過去幾年中發生了太多相互衝突的事情,所以我非常高興的是我們三個人在文本上獨立於彼此產生了完全相同的答案。 :) –

回答

5

您需要將字符串中的原始字節解碼爲真實字符。在打印之前,嘗試在zp.read()之後運行.decode('utf-8')

+1

謝謝。看起來你們所有三個人都是爲了答案而並列,但你首先得到了答案。 – mowwwalker

5

只是decode字節:

print(zp.read('MyText.txt').decode('UTF-8'))