Строковые / двоичные данные в байтах - PullRequest
0 голосов
/ 12 декабря 2011

Я новичок в Python. Я хочу преобразовать массив символов в байтовый буфер, т. Е. Есть ли способ конвертировать данные, которые могут быть строковыми или двоичными данными, в байтовый буфер.

Например: если str = 'apple' мне нужен буфер = байтовые значения 'apple', к которым я могу получить доступ как buffer[i] и buffer[:j]

Если я использую map(ord,'apple'), это возвращает список, но мне нужен непрерывный буфер. Как мне получить это в Python?

ОБНОВЛЕНИЕ 1: Также мне нужны байты, потому что сегодня это могут быть строки, а завтра я могу иметь дело с файлами.

ОБНОВЛЕНИЕ 0: Я хочу это в байтах. Я мог бы использовать строки, как подсказывает @ignacio, но строки просто не подходят. Потому что в конечном итоге это войдет в мою реализацию скользящего хэша

Ответы [ 2 ]

3 голосов
/ 12 декабря 2011

Попробуйте bytearray .Который будет конвертировать исходную строку в массив байтов.Существует необязательный параметр кодирования, который необходимо указать в случае, если кодировка по умолчанию не является текущей кодировкой строки по умолчанию.

Пример

>>> s = 'apple'
>>> arr=bytearray(s)
>>> [x for x in arr]
[97, 112, 112, 108, 101]
>>> type(arr)
<type 'bytearray'>
>>> 
0 голосов
/ 12 декабря 2011

Вы можете использовать struct модуль в Python.

Модуль struct включает функции для преобразования между строками байты и собственные типы данных Python, такие как числа и строки.

...