Python поддерживает множество различных типов объектов данных. Два из них – это объекты bytearray и bytes. Функция bytearray() возвращает объект массива байтов. Этот объект является изменяемым и поддерживает целые числа от 0 до 255. Функция bytes() возвращает байтовые объекты, не может быть изменена и поддерживает целые числа от 0 до 255. В этой статье будут описаны эти функции и объяснено, как можно преобразовать объекты байтового массива. в байтовые объекты.
bytearray ([ data_source [, encoding [, errors]]])
Три аргумента этого метода необязательны. Первый аргумент используется для инициализации списка байтов. Если первым аргументом является строка, то второй аргумент используется для кодирования. Наконец, третий аргумент используется для отображения ошибки в случае сбоя кодирования.
bytes ([data_source [, encoding [, errors]]])
Все аргументы функции bytes() необязательны, как и метод bytearray(). Функции этих аргументов такие же, как и у упомянутого выше метода bytearray().
Способ преобразования ByteArray в байтах в Python будет показано ниже, используя несколько простых примеров для лучшего понимания этого процесса.
Когда функция bytearray() содержит только один аргумент, значением аргумента будет данные словаря или переменная. В следующем примере показано, как объект словаря может быть преобразован в объект байтового массива и как затем объект байтового массива может быть преобразован в байтовый объект. Затем первый цикл for используется для отображения значений таблицы трансляции кодов ASCII, а второй цикл for используется для отображения символов соответствующих кодов ASCII.
#!/usr/bin/env python3 # Определить список listdata = [72, 69, 76, 76, 79] # Распечатать содержимое списка print(" \n Значения словаря: \n ", listdata) # Инициализировать объект ByteArray , со списком byteArrayObject = ByteArray(ListData) # печать ByteArray, значение объекта print(" \n выходной метод ByteArray(): \n" ,byteArrayObject) # Преобразование объекта bytearray в объект byteObject = bytes(byteArrayObject) # Печать значения объекта байтов print(" \n Вывод метода bytes(): \n ", byteObject) print(" \n Значения байтов в формате ASCII ") # Итерировать байтовый объект, используя цикл for val in byteObject: print(val,' ', end='') print( " \n Строковые значения байтов") # Итерировать байтовый объект, используя цикл for val in byteObject: print(chr(val),' ', end='')
Выход
Следующий вывод появится после запуска скрипта. Здесь 72, 69, 76 и 79 – это код ASCII для символов «H», «E», «L» и «O» соответственно.
В следующем примере показано преобразование объектов байтового массива в байтовые объекты строковых данных. В методе bytearray() этого скрипта используются два аргумента. Первый аргумент содержит строковое значение, а второй аргумент содержит строку кодировки. Здесь кодировка utf-8 используется для преобразования в объект байтового массива. Метод decode() используется в скрипте для преобразования байтовых объектов в строковые данные. Такая же кодировка используется во время преобразования.
#!/usr/bin/env python3 # Возьмите строковое значение text = input("Введите любой текст: \n") # Инициализировать ByteArray объект строки и кодирование byteArrObj = ByteArray(text, 'UTF-8') print(" \n Вывод метода bytesarray(): \n ", byteArrObj) # Конвертировать bytearray в байты byteObj = bytes(byteArrObj) print(" \n Вывод метода bytes(): \n", byteObj) # Преобразовать байты значения в строку, используя emcoding print(" \n Строку значения байт») print(byteObj.Decode("UTF-8"))
В предыдущих примерах показано преобразование массива байтов и байтов на основе словарных и строковых данных. В этом третьем примере показано преобразование массива байтов в байты на основе входных данных. Здесь входное значение преобразуется в целое число и передается в качестве аргумента через функцию bytearray(), а затем объект bytearray преобразуется в объект байтов. Нулевые значения, основанные на целочисленном числе, показаны как выходные данные объекта bytearray и bytes. Общее количество байтов подсчитывается с помощью метода len() в конце скрипта и будет равно целочисленному значению, переданному в качестве аргумента в метод bytearray().
#!/usr/bin/env python3 попробовать : # Возьмем любое числовое значение text = int(input("Введите любое число:")) # Инициализировать ByteArray объект с номером byteArrObj = bytearray(text) print("\n Вывод метода bytesarray(): \n ", byteArrObj) # Преобразование объекта byteObj = bytes(byteArrObj) print(" \n Вывод метода bytes(): \n ", byteObj) # Распечатать размер объекта байтов print(" \n Длина объекта байтов: ", len(byteObj)) except ValueError: print(" Введите любое число значение ")
Выход
После запуска сценария 6 используется в качестве входных данных для следующего вывода. Шесть нулевых значений отображаются как выходные данные массива байтов и байтов. Когда подсчитываются нулевые значения, отображается 6.
В следующем примере показано, как объекты bytearray могут быть созданы с помощью метода append() и преобразованы в байты. Переменная arrVal объявлена здесь как объект bytearray. Затем шесть раз вызывается метод append() для добавления шести элементов в массив. Коды ASCII символов «P», «y», «t», «h», «o» и «n» равны 80, 121, 116, 104, 111 и 1120 соответственно. Они добавляются в объект bytearray. Этот объект массива позже преобразуется в объект байтов.
#!/usr/bin/env python3 # Создание ByteArray и добавить элемент, используя метод добавления() arrVal = bytearray() arrVal.append(80) arrVal.append(121) arrVal.append(116) arrVal.append(104) arrVal.append(111) arrVal.append(110) # Распечатать значения bytearray() print(" \n Вывод метода bytearray(): \n", arrVal) # Преобразование объекта bytearray в объект byteObject = bytes(arrVal) # Печать значения объекта байтов print(" \n Вывод метода bytes(): \n ", byteObject)
В этой статье показаны различные методы преобразования bytearray в байты после создания объектов bytearray. После прочтения этой статьи мы надеемся, что вы понимаете концепцию байтового массива и байтов, знаете, как преобразовать байтовый массив в байты, и сможете отображать вывод байтов в виде строки и символов.