В Python для представления данных в двоичной форме можно использовать байты. Из этой статьи вы узнаете, как преобразовать строку в байты и наоборот.
Но прежде чем мы рассмотрим преобразования, давайте поговорим о том, как работают байты в Python. Вы можете перейти к следующему разделу, если вы уже поняли это или вас интересуют только преобразования.
Вы можете создавать байтовые литералы, используя префикс b. Он указывает интерпретатору Python, что набор символов должен рассматриваться как байты. Вот пример:
byte_data = b'Hello'
Здесь мы поставили префикс b
прямо перед строковым значением: b'Hello'
. При выводе любого из символов этой строки вы получите его двоичное значение:
byte_data = b'Hello' print(byte_data[0]) # 72
Вместо «H» было выведено 72. Перебирая индексы, вы продолжите печатать двоичные значения символов под этими индексами:
byte_data = b'Hello' print(byte_data[0]) # 72 => H print(byte_data[1]) # 101 => e print(byte_data[2]) # 108 => l print(byte_data[3]) # 108 => l print(byte_data[4]) # 111 => 0
Теперь давайте поговорим о преобразованиях.
Для перевода строки в байты в Python можно использовать метод encode()
. Метод просто кодирует строку, используя определенную кодировку, например UTF-8, ASCII и так далее.
Вот пример:
string_data = "Hello" print(string_data[0]) # H
Здесь мы создали строку string_data
со значением «Hello». Мы также вывели первый символ строки — «H».
Теперь давайте преобразуем эту строку в байты с помощью метода encode()
:
string_data = "Hello" byte_data = string_data.encode('utf-8') print(byte_data[0]) # 72
Мы преобразовали переменную string_data
в байты с помощью метода encode()
, который принял в качестве параметра «utf-8». Мы сохранили это преобразование в переменной byte_data
: byte_data = string_data.encode('utf-8')
.
Наконец, мы вывели первый символ переменной byte_data
и получили его двоичное значение: print(byte_data[0]) # 72
.
Для преобразования байтов в строку в Python можно использовать метод decode()
. Он работает так же, как и метод encode()
: присоедините его к переменной, которую нужно преобразовать, используя точечную нотацию, и укажите тип кодировки в качестве параметра метода.
Вот пример:
byte_data = b'Hello' string_data = byte_data.decode('utf-8') print(string_data[0]) # H
Мы создали байтовый объект под названием byte_data
. С помощью метода decode()
мы преобразовали его в строку и сохранили в переменной string_data
: string_data = byte_data.decode('utf-8')
.
При печати символов переменной string_data
вы должны получить строковые символы, а не их двоичные значения: print(string_data[0]) # H
.
Из этой статьи вы узнали, как использовать байты в Python. Вы также познакомились с двумя методами преобразования: encode()
и decode()
. Первый метод переводит строки в байты, а второй — байты в строки.
Перевод статьи «Python Bytes to String – How to Convert a Str to Bytes and Back Again».
При анализе данных часто требуется быстро найти абсолютное значение набора чисел. Для выполнения этой задачи…
Pydantic - это мощная библиотека проверки данных и управления настройками для Python, созданная для повышения…
Python предлагает набор библиотек, удовлетворяющих различные потребности в визуализации, будь то академические исследования, бизнес-аналитика или…
В этой статье рассказывается о том, что такое Werkzeug и как Flask использует его для…
При работе с датами часто возникает необходимость прибавлять к дате или вычитать из нее различные…
В этом руководстве мы рассмотрим, как добавить социальную аутентификацию с помощью GitHub и Google в…