How can I convert bytes to a Python string?

In Python, bytes are sequences of 8-bit values, while strings are sequences of Unicode characters. Converting bytes to strings is a common task when working with file I/O, network data, or encoded text. Python provides several built-in methods to perform this conversion efficiently.

Converting Bytes to Strings in Python

The following methods can be used to convert bytes to Python strings ?

Using decode() Method

The decode() method is the most common and straightforward way to convert bytes to strings. It converts bytes using a specified encoding (UTF-8 by default) ?

Example

# input bytes
input_data = b'TutorialsPoint'

# printing input bytes data
print('Input data:', input_data)
print('Type:', type(input_data))

# converting bytes to string using decode() method
result = input_data.decode()

# printing the result
print('Output data:', result)
print('Type:', type(result))
Input data: b'TutorialsPoint'
Type: <class 'bytes'>
Output data: TutorialsPoint
Type: <class 'str'>

Using str() Function

The str() function can convert bytes to strings by specifying the encoding as the second parameter ?

Example

# input bytes
input_data = b'TutorialsPoint'

# printing input bytes data
print('Input data:', input_data)
print('Type:', type(input_data))

# converting bytes to string using str() function
result = str(input_data, 'UTF-8')

# printing the result
print('Output data:', result)
print('Type:', type(result))
Input data: b'TutorialsPoint'
Type: <class 'bytes'>
Output data: TutorialsPoint
Type: <class 'str'>

Using codecs.decode() Function

The codecs module provides a decode() function that can convert bytes to strings with various encoding options ?

Example

import codecs

# input bytes
input_data = b'TutorialsPoint'

# printing input bytes data
print('Input data:', input_data)
print('Type:', type(input_data))

# converting bytes to string using codecs.decode()
result = codecs.decode(input_data)

# printing the result
print('Output data:', result)
print('Type:', type(result))
Input data: b'TutorialsPoint'
Type: <class 'bytes'>
Output data: TutorialsPoint
Type: <class 'str'>

Using Pandas Library

When working with pandas DataFrames containing byte data, you can use the str.decode() method to convert bytes to strings ?

Example

import pandas as pd

# input dictionary with byte values
input_dict = {'clothes': [b'shirt', b'pant', b'tshirt', b'cap']}

# creating pandas dataframe
dataframe = pd.DataFrame(data=input_dict)
print('Original DataFrame:')
print(dataframe)

# converting bytes to strings
result = dataframe['clothes'].str.decode("utf-8")

print('\nAfter conversion:')
print(result)
Original DataFrame:
   clothes
0  b'shirt'
1   b'pant'
2 b'tshirt'
3    b'cap'

After conversion:
0     shirt
1      pant
2    tshirt
3       cap
Name: clothes, dtype: object

Comparison

Method Syntax Best For
decode() bytes.decode() Most common, simple conversion
str() str(bytes, encoding) When encoding needs to be explicit
codecs.decode() codecs.decode(bytes) Advanced encoding operations
Pandas str.decode() series.str.decode() DataFrame/Series operations

Conclusion

The decode() method is the most straightforward approach for converting bytes to strings. Use str() when you need to explicitly specify encoding, and codecs.decode() for advanced encoding scenarios. For pandas DataFrames, use the str.decode() method.

Updated on: 2026-03-24T20:20:42+05:30

12K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements