Converter bytes para string em Python: guia completo e exemplos
No guia completo de conversão de bytes para string em Python, exploramos diferentes métodos e exemplos práticos para converter bytes em strings.
Glossário
Converter bytes para string em Python: guia completo e exemplos
Introdução
Em Python, a conversão de bytes para strings é uma tarefa comum que muitas vezes precisamos realizar. Felizmente, a linguagem Python oferece várias maneiras de realizar essa conversão de forma simples e eficiente. Neste guia completo, exploraremos diferentes métodos e exemplos práticos para converter bytes para strings em Python.
Método decode()
Para converter bytes para string em Python, podemos utilizar o método decode()
das strings. Esse método nos permite especificar o encoding do conjunto de caracteres dos bytes e obter a string correspondente. Podemos utilizar a seguinte sintaxe:
string = bytes.decode(encoding)
O parâmetro encoding
representa o conjunto de caracteres em que os bytes estão codificados. Alguns dos encodings mais comuns são UTF-8, ASCII e Latin-1. Dependendo do conjunto de caracteres utilizado, é importante garantir que ele seja compatível com o conjunto de caracteres dos bytes.
Além do método decode()
, também podemos utilizar a função str()
para converter bytes para strings. Essa função retorna uma representação textual dos bytes. No entanto, ela não permite especificar o encoding dos bytes, o que pode levar a problemas se os bytes estiverem codificados em um conjunto de caracteres diferente do padrão.
Ao converter bytes para string em Python, é importante ter em mente que os bytes podem conter caracteres que não são suportados pelo conjunto de caracteres especificado. Nesses casos, podem ocorrer erros de decodificação. É recomendado utilizar tratamentos de exceção para identificar e lidar com esses erros adequadamente.
Exemplos:
1. Utilizando o método decode()
Converter bytes no encoding UTF-8 para uma string:



bytes_utf8 = b"Ol\xc3\xa1, mundo!"
string = bytes_utf8.decode("utf-8")
print(string) # Saída: Olá, mundo!
Converter bytes no encoding Latin-1 para uma string:
bytes_latin1 = b"Ol\xe1, mundo!"
string = bytes_latin1.decode("latin-1")
print(string) # Saída: Olá, mundo!
2. Utilizando a função str()
Converter bytes para uma string sem especificar o encoding:
bytes = b"Hello, world!"
string = str(bytes)
print(string) # Saída: b"Hello, world!"
Converter bytes para uma string especificando o encoding UTF-8:
bytes = b"Ol\xc3\xa1, mundo!"
string = str(bytes, "utf-8")
print(string) # Saída: Olá, mundo!
É importante ressaltar que a escolha do método de conversão depende do contexto e dos requisitos específicos do projeto em que estamos trabalhando. É recomendado ler a documentação oficial do Python e realizar testes para determinar qual método é mais adequado para cada situação.
Transformando bytes em string utilizando o método decode()
Ao lidar com bytes em Python, é bastante comum a necessidade de convertê-los em strings legíveis e utilizáveis. Uma maneira eficiente de realizar essa transformação é utilizando o método decode()
. Esse método nos permite especificar o encoding dos bytes e obter a string correspondente.
Quando utilizamos o método decode()
, informamos o encoding dos bytes como parâmetro. Por exemplo, se os bytes estiverem codificados em UTF-8, podemos utilizar o seguinte código para realizar a conversão:
bytes_utf8 = b"Ol\xc3\xa1, mundo!"
string = bytes_utf8.decode("utf-8")
print(string) # Saída: Olá, mundo!
Nesse exemplo, passamos o encoding UTF-8 como parâmetro para o método decode()
. O método então realiza a decodificação dos bytes e retorna a string correspondente. É importante ressaltar que o encoding utilizado deve ser compatível com o conjunto de caracteres dos bytes; caso contrário, ocorrerão erros de decodificação.
Outro parâmetro opcional que podemos utilizar com o método decode()
é o parâmetro errors
, que determina como lidar com erros de decodificação. Alguns dos possíveis valores para esse parâmetro são “strict” (lança uma exceção em caso de erro), “ignore” (ignora os caracteres inválidos) e “replace” (substitui os caracteres inválidos por um caractere de substituição).
Exemplos:
Converter bytes no encoding Latin-1 para uma string:
bytes_latin1 = b"Ol\xe1, mundo!"
string = bytes_latin1.decode("latin-1")
print(string) # Saída: Olá, mundo!
Converter bytes no encoding UTF-16 para uma string:



bytes_utf16 = b"\xff\xfeO\x00l\x00\xe1\x00,\x00 \x00m\x00u\x00n\x00d\x00o\x00!"
string = bytes_utf16.decode("utf-16")
print(string) # Saída: Olá, mundo!
Nesses exemplos, utilizamos diferentes encodings para realizar a decodificação dos bytes. Ao utilizar o método decode()
, podemos obter as strings corretamente convertidas, permitindo que sejam manipuladas e exibidas de maneira adequada.
Exemplos práticos de conversão de bytes para string em Python
Para ilustrar a conversão de bytes para string em Python, apresentaremos agora alguns exemplos práticos que demonstram o uso do método decode()
em diferentes cenários:
1. Conversão de bytes em formato hex para string:
bytes_hex = b"48656c6c6f2c20776f726c6421"
string = bytes_hex.decode("hex")
print(string) # Saída: Hello, world!
Nesse exemplo, os bytes estão em formato hexadecimal. Utilizando o método decode()
, realizamos a conversão para obter a string correspondente.
2. Conversão de bytes recebidos por meio de uma conexão de rede:
import socket
# Estabelece a conexão com o servidor e recebe os bytes
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(("exemplo.com", 80))
bytes_recebidos = s.recv(1024)
s.close()
# Converte os bytes para string
string = bytes_recebidos.decode("utf-8")
Nesse exemplo, estamos utilizando a biblioteca socket
para realizar uma conexão de rede e receber bytes do servidor. Em seguida, utilizamos o método decode()
para converter esses bytes em uma string legível e utilizável.
Esses são apenas alguns exemplos de como podemos converter bytes para string em Python. A escolha do método de conversão e do encoding a ser utilizado depende do contexto e dos requisitos específicos do projeto. É importante considerar o conjunto de caracteres dos bytes e escolher o encoding correto para evitar problemas de decodificação.
Conclusão
Em resumo, neste guia completo, abordamos a conversão de bytes para string em Python. Exploramos o método decode()
, que nos permite realizar essa transformação especificando o encoding dos bytes. Além disso, fornecemos exemplos práticos que ilustram a aplicação desse método em diferentes cenários. Agora você está preparado para realizar a conversão de bytes para string de forma eficiente e adequada em seus projetos Python.
A Awari é a melhor plataforma para aprender sobre programação no Brasil.
Aqui você encontra cursos com aulas ao vivo, mentorias individuais com os melhores profissionais do mercado e suporte de carreira personalizado para dar seu próximo passo profissional e aprender habilidades como Data Science, Data Analytics, Machine Learning e mais.
Já pensou em aprender de maneira individualizada com profissionais que atuam em empresas como Nubank, Amazon e Google? Clique aqui para se inscrever na Awari e começar a construir agora mesmo o próximo capítulo da sua carreira em dados.


