Преобразование Bytearray в байты в Python

Python поддерживает множество различных типов объектов данных. Два из них — это объекты bytearray и bytes. Функция bytearray() возвращает объект массива байтов. Этот объект является изменяемым и поддерживает целые числа от 0 до 255. Функция bytes() возвращает байтовые объекты, не может быть изменена и поддерживает целые числа от 0 до 255. В этой статье будут описаны эти функции и объяснено, как можно преобразовать объекты байтового массива. в байтовые объекты.

 

Синтаксис метода bytearray()

bytearray ([ data_source [, encoding [, errors]]])

Три аргумента этого метода необязательны. Первый аргумент используется для инициализации списка байтов. Если первым аргументом является строка, то второй аргумент используется для кодирования. Наконец, третий аргумент используется для отображения ошибки в случае сбоя кодирования.

 

Синтаксис метода bytes()

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

Все аргументы функции bytes() необязательны, как и метод bytearray(). Функции этих аргументов такие же, как и у упомянутого выше метода bytearray().

Способ преобразования ByteArray в байтах в Python будет показано ниже, используя несколько простых примеров для лучшего понимания этого процесса.

 

Пример 1: преобразование данных списка из байтового массива в байты

Когда функция 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» соответственно.

 

Пример 2: преобразование строковых данных из байтового массива в байты

В следующем примере показано преобразование объектов байтового массива в байтовые объекты строковых данных. В методе 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"))


 

Пример 3: преобразование целочисленных данных из байтового массива в байты

В предыдущих примерах показано преобразование массива байтов и байтов на основе словарных и строковых данных. В этом третьем примере показано преобразование массива байтов в байты на основе входных данных. Здесь входное значение преобразуется в целое число и передается в качестве аргумента через функцию 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.

 

Пример 4: Создание массива байтов с помощью append() и преобразование в байты

В следующем примере показано, как объекты 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. После прочтения этой статьи мы надеемся, что вы понимаете концепцию байтового массива и байтов, знаете, как преобразовать байтовый массив в байты, и сможете отображать вывод байтов в виде строки и символов.



2021-02-16T12:40:15
Python