HOWTO · Python

Converter Bytearray em String em Python

Este artigo apresenta os dois processos que você pode executar para converter bytearray em string no Python.

Nesta página

Você pode usar dois métodos principais para converter um bytearray em uma string em Python: bytes() e bytearray.decode(). Neste tutorial, mostraremos como você pode usar essas funções como métodos para essa conversão especial.

Converta bytearray para string com a função bytes() em Python

Se tivermos um bytearray contendo caracteres string com a codificação utf-8 e quisermos converter esse array em uma variável string, podemos usar a função interna bytes() em Python.

A função bytes() retorna um objeto de bytes imutável que pode então ser armazenado dentro de uma variável string. O fragmento de código a seguir demonstra como podemos converter um bytearray em uma string com a função bytes().

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

Resultado:

b'test'

Convertemos o objeto bytearray b em uma variável de string str1 com a função bytes() no código acima. Primeiro, codificamos o texto test com uma codificação utf-8 dentro de um objeto de bytearray. Em seguida, convertemos o bytearray em string com a função bytes() e armazenamos o resultado dentro da variável de string str1.

No final, imprimimos os dados dentro da variável str1. A saída mostra que esse processo adiciona um objeto b no início de nossos dados originais e, em seguida, coloca os dados entre aspas simples. Este problema é tratado no método discutido a seguir.

Converta bytearray para string com a função bytearray.decode() em Python

Como podemos ver, a função bytes() converte um bytearray em uma string, mas adiciona dados adicionais à string original. Esse problema pode ser resolvido pela manipulação de strings, mas é um processo complicado. A função bytearray.decode() faz isso automaticamente para nós. Este método decodifica os dados originalmente codificados dentro do bytearray.

O fragmento de código a seguir demonstra como podemos converter um bytearray em string com a função bytearray.decode().

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

Resultado:

test

Convertemos o objeto bytearray b em uma variável de string str1 com a função b.decode() no código acima. Primeiro, codificamos o texto test com uma codificação utf-8 dentro de um objeto de bytearray. Em seguida, convertemos o bytearray em string com a função b.decode() e armazenamos o resultado dentro da variável de string str1. No final, imprimimos os dados dentro da variável str1. A saída mostra que esse processo não adiciona nenhum dado adicional aos nossos dados codificados originalmente.

A partir das demonstrações acima, é claro que o método bytearray.decode() é muito superior ao método byte() para converter um objeto bytearray em uma variável string.