В 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».
Если вы ищете работу на Python, на Talanto.work сейчас есть варианты для junior, middle, senior…
Рынок Python-вакансий большой, но удобным его назвать сложно. Формально вакансий много, однако в реальном поиске…
Срезы в Python — это больше, чем a[2:7]. В статье — быстрый разбор полезных приёмов:…
В этой статье мы рассмотрим возведение в степень в Python с помощью различных методов, от…
Дубликаты в списке Python — частая проблема. В статье показано, как быстро убрать повторы, в…
Услуга виртуального хостинга на SpaceWeb позволяет арендовать часть сервера (shared-сервера) и разместить на нём свой…