Байт-объект состоит из серии байтов. Они машиночитаемы и могут быть немедленно сохранены на диск. Строки находятся в удобочитаемом формате и перед использованием должны быть закодированы. Текст можно сопоставить с диском, используя множество различных типов кодирования. Наиболее широко используются системы кодирования ASCII и UTF-8.
В Python байты и строки хорошо различаются. Предоставляя кодировку, вы можете кодировать строку для получения байтов и декодировать байты для получения строки. Интер-преобразования являются обычным явлением, но преобразования строк в байты становятся все более распространенными в наши дни, поскольку нам обычно требуется переводить строки в байты при работе с файлами или машинном обучении. Вы должны знать, что преобразование может завершиться неудачно, и следует учитывать то, как обрабатываются ошибки.
Давайте посмотрим на несколько иллюстраций, как это можно сделать. В этом руководстве мы узнаем о преобразовании строки Python в байты. Мы рассмотрим два метода, чтобы вы могли выбрать тот, который лучше всего соответствует вашим желаниям. Хотя существует несколько методов преобразования строк Python в байты, мы сосредоточимся на наиболее распространенных и простых. Теперь рассмотрим несколько примеров.
Чтобы преобразовать строку в байты, мы можем использовать встроенный в Python класс Bytes: просто укажите строку в качестве первого аргумента функции Object() { [native code] } класса Bytes, а затем укажите кодировку. Изначально у нас есть строка с названием «my_str». Мы преобразовали эту конкретную строку в байты.
my_str = "welcome to Python" str_one = bytes(my_str, 'utf-8') str_two = bytes(my_str, 'ascii') print(str_one,'\n') for byte in str_one: print(byte, end='') print('\n') for byte in str_two: print(byte,end='')
Этот подход, как видите, преобразовал строку в серию байтов. Обратите внимание, что эта функция преобразует объекты в неизменяемые байты; если вам нужен изменяемый метод, используйте вместо него метод bytearray(). Элемент был создан в текстовом формате, который легко читается, но данные, которые он содержит, указаны в байтах. Вот результат реализации приведенного выше кода.
В этом примере для перевода данных использовался метод encode(). Это наиболее часто используемый и рекомендуемый способ преобразования строк Python в байты. Одна из основных причин – его легче читать. Синтаксис метода кодирования следующий:
# string.encode(encoding=encoding, errors=errors)
Строка, которую вы хотите преобразовать, называется строкой. Используемый вами метод кодирования называется «кодирование». Строка «Error» показывает сообщение об ошибке. UTF-8 стал стандартом со времен Python 3.
my_str = "sample code for conversion" my_str_encoded = my_str.encode(encoding = 'UTF-8') print(my_str_encoded) for bytes in my_str_encoded: print(bytes,end ='')
В качестве примера мы использовали строку my_str = “Sample code for conversion”. Мы использовали кодировку для преобразования после инициализации строки, а затем распечатали вывод строки. После этого мы распечатали отдельные байты следующим образом:
В нашем третьем примере мы снова используем метод encode() для преобразования строк в байты. Это удобный способ конвертировать строки в байты.
my_str = "Learn about programing" print(my_str) print(type(my_str)) str_object = my_str.encode("utf-8") print(str_object) print(type(str_object))
Мы рассматриваем my_str=«Learn about programming» как источник, который нужно преобразовать в байты в приведенном выше коде. На следующем шаге мы превратили строку в байты с помощью метода encode(). До и после преобразования функция type() используется для проверки типа объекта. Здесь используется enc = utf-8.
Приведенный выше код сгенерировал следующий вывод.
Оба этих подхода эффективно решают одну и ту же проблему; поэтому выбор одного метода вместо другого зависит от личных предпочтений. Однако мы рекомендуем вам выбрать вариант, который лучше всего соответствует вашим потребностям. Метод byte() возвращает объект, который нельзя изменить. В результате, если вам нужен изменяемый объект, подумайте об использовании bytearray(). Объект должен иметь размер 0 = x 256 для методов byte().