Python читает файл в двоичном формате, двоичные данные в строку? - PullRequest
0 голосов
/ 03 октября 2011

Я пытаюсь выучить Python и в настоящее время делаю некоторые упражнения онлайн.Один из них включает чтение zip-файлов.

Когда я делаю:

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'))

Как мне это сделать?

Ответы [ 3 ]

5 голосов
/ 03 октября 2011

Вам нужно сначала декодировать байты в текст .

print(zp.read('MyText.txt').decode('utf-8'))
5 голосов
/ 03 октября 2011

Просто декодировать байтов:

print(zp.read('MyText.txt').decode('UTF-8'))
5 голосов
/ 03 октября 2011

Вам необходимо декодировать необработанные байты в строке в реальные символы.Попробуйте набрать .decode('utf-8') для значения, которое вы получаете от zp.read() перед его печатью.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...