Python读取二进制文件中的二进制数据到字符串?

问题描述:

我在学习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越来越复杂,并且在过去几年中发生了太多相互冲突的事情,所以我非常高兴的是我们三个人在文本上独立于彼此产生了完全相同的答案。 :) –

您需要将字符串中的原始字节解码为真实字符。在打印之前,尝试在zp.read()之后运行.decode('utf-8')

+1

谢谢。看起来你们所有三个人都是为了答案而并列,但你首先得到了答案。 – mowwwalker

您首先需要decode the bytes to text

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

只是decode字节:

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