Чтение частей двоичных данных в строку в Python - PullRequest
0 голосов
/ 14 апреля 2011

Когда вы используете метод .read(n) для файлового объекта в python, вы получаете n байтов назад. Что если я сначала загружу файл в строку, есть ли какая-нибудь функция, которая позволяет мне делать то же самое?

Потому что я полагаю, что это не так просто, строка файла [0: 5], из-за разных типов кодирования. (И я не хочу обращать на это внимание, прочитанный файл может быть текстовым файлом любого формата или двоичным файлом)

1 Ответ

3 голосов
/ 14 апреля 2011

Если строка имеет тип str (не строка Unicode, тип unicode), то это строка байтов, и срезы будут работать, как и ожидалось:

prefixed_bits = "extract this double:\xc2\x8eET\xfb!\t@"
pos = prefixed_bits.index(":") + 1
print "That looks like the value %f" % struct.unpack("d", prefixed_bits[pos:pos+8])

Это печатает 3.141593, двоичное представлениеиз которых закодирован в строковом литерале.

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