Преобразование Bytearray в String в Python

Muhammad Maisam Abbas 30 Январь 2023 11 Июль 2021
  1. Преобразуйте bytearray в строку с помощью функции bytes() в Python
  2. Преобразуйте bytearray в строку с помощью функции bytearray.decode() в Python
Преобразование Bytearray в String в Python

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

Преобразуйте bytearray в строку с помощью функции bytes() в Python

Если у нас есть bytearray, содержащий строковые символы в кодировке utf-8, и мы хотим преобразовать этот массив в строковую переменную, мы можем использовать встроенную функцию bytes() в Python.

Функция bytes() возвращает неизменяемый байтовый объект, который затем может быть сохранен внутри строковой переменной. Следующий фрагмент кода демонстрирует, как мы можем преобразовать массив байтов в строку с помощью функции bytes().

b = bytearray("test", encoding="utf-8")
str1 = bytes(b)
print(str1)

Выход:

b'test'

Мы преобразовали объект массива байтов b в строковую переменную str1 с помощью функции bytes() в приведенном выше коде. Сначала мы закодировали текст test в кодировке utf-8 внутри объекта bytearray. Затем мы преобразовали массив байтов в строку с помощью функции bytes() и сохранили результат в строковой переменной str1.

В итоге мы распечатали данные внутри переменной str1. Выходные данные показывают, что этот процесс добавляет объект b в начало наших исходных данных, а затем заключает данные в одинарные кавычки. Эта проблема решается в методе, обсуждаемом далее.

Преобразуйте bytearray в строку с помощью функции bytearray.decode() в Python

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

Следующий фрагмент кода демонстрирует, как мы можем преобразовать массив байтов в строку с помощью функции bytearray.decode().

b = bytearray("test", encoding="utf-8")
str1 = b.decode()
print(str1)

Выход:

test

Мы преобразовали объект байтового массива b в строковую переменную str1 с помощью функции b.decode() в приведенном выше коде. Сначала мы закодировали текст test в кодировке utf-8 внутри объекта bytearray. Затем мы преобразовали массив байтов в строку с помощью функции b.decode() и сохранили результат внутри строковой переменной str1. В итоге мы распечатали данные внутри переменной str1. Выходные данные показывают, что этот процесс не добавляет никаких дополнительных данных к нашим изначально закодированным данным.

Из демонстрации выше ясно, что метод bytearray.decode() намного превосходит метод byte() для преобразования объекта bytearray в строковую переменную.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

Сопутствующая статья - Python String