Добавить префикс "b" в переменную python?

Добавление префикса "b" в строку преобразует его в байты:

b'example'

Но я не могу понять, как это сделать с переменной. Предполагая string = 'example', ни один из них не работает:

b(string)
b string
b'' + string

Есть ли простой способ сделать это?

Ответ 1

# only an example, you can choose a different encoding
bytes('example', encoding='utf-8')

В Python3:

Булевые литералы всегда имеют префикс "b" или "B"; они создают экземпляр типа байтов вместо типа str. Они могут содержат символы ASCII; байты с числовым значением 128 или более должен быть выражен с помощью экранов.

В Python2:

Префикс 'b' или 'B' игнорируется в Python 2; это означает, что literal должен быть литералом байтов в Python 3.

Подробнее о байтах():

bytes ([source [, encoding [, errors]]])

Возвращает новый объект "байтов", который является неизменной последовательностью целые числа в диапазоне 0 <= x < 256. bytes - неизменная версия bytearray - он имеет те же самые не мутирующие методы и ту же индексацию и поведение нарезки.

Соответственно, аргументы конструктора интерпретируются как для bytearray().

Объекты Bytes также могут быть созданы с помощью литералов, см. String и Bytes литералы.

Ответ 2

Используйте bytes():

>>> bytes("hello", encoding="ascii")
b'hello'

Ответ 3

string = bytes(string, encoding= 'utf-8')

где 'строка' - это ваша переменная.

Ответ 4

Или используйте метод bytes.decode() для преобразования в string (используя заданную кодировку):

>>> b'hello'.decode('utf-8')
'hello'

Обратное преобразование - str.encode() для преобразования string в bytes:

>>> 'hello'.encode('utf-8')
b'hello'

Ответ 5

Я проверял это в течение долгого времени, и я думаю, что лучший способ преобразовать строку в переменную - это использовать vars()

vars() ['имя переменной'] = значение для назначения

vars()['created_variable'] = 1
print(created_variable)
>> 1