Python bytes

Python bytes

Python bytes object is a sequence of single bytes.

Python bytes object is immutable, so inplace update operations or modifications on the original bytes object cannot be done.

Initiate a Python bytes object

You can define a bytes object using single quotes, double quotes or triple coated; with literal b prefixed.

bytes with single quotes

bytesObj = b'52s3a6s1s2xA$as2'

When using single quotes to define, you can include double quote character in the bytes sequence. But if you would like include a single quote character, use escape character \ back slash.

bytesObj = b'52s3a6"s1s2xA$as2'
bytesObj = b'52s3a6s1s\'2xA$as2'  #use escape character for single quote inside single quotes

bytes with double quotes

bytesObj = b"52s3a6s1s2xA$as2"

Similar to the case with single quotes, when using double quotes to define a bytes object, you can include single quote character in the bytes sequence as is. But if you would like include a double quote character, use escape character \ back slash.

bytesObj = b"52s3a6s1s2'xA$as2"
bytesObj = b"52s3a6\"s1s2xA$as2" #use escape character for double quote inside double quotes

bytes with triple quotes

bytesObj = b'''52s3a6s1s2xA$as2'''
bytesObj = b"""52s3a6s1s2xA$as2"""

To include triple quotes inside triple quotes is no exception. You have escape the first of the triple quote inside bytes sequence.

bytesObj = b'''52s3a6\'''s1s2xA$as2'''
bytesObj = b"""52s3a6\"""s1s2xA$as2"""

Python bytes with hexadecimal characters

You can include hexadecimal characters in the bytes sequence. You have to use \x prefix for each hexadecimal character you place in the bytes object.

bytesObj = b'52s3a6s\xFD1s2xA$as2'

In the above object, \xFD is a single byte in hexadecimal format.

Iterate over Python Bytes Sequence

Python bytes is a sequence. Therefore, we can use iterate over it using a looping technique.

In the following example, we will use for loop to iterate over the bytes of the Python bytes object.

Python Program

bytesObj = b'52s3a6'

for byte in bytesObj:
    print(byte)

Output

53
50
115
51
97
54

The byte values are the integer representations. So, we are seeing numbers in the output for each byte.

Conversions

You can convert a bytes object to other datatypes or other datatype objects to bytes object.

For example, in the following program, we shall convert a bytes object to string and string object to bytes.

Python Program

#bytes to string
bytesObj = b'52s3a6s1s2xA$as2'
strObj = bytesObj.decode("utf-8") 
print(strObj)

#string to bytes
strObj = 'hello'
bytesObj = bytes(strObj, "utf-8")
print(bytesObj)

Output

52s3a6s1s2xA$as2
b'hello'

In the first part of the code, we have taken a bytes object and converted it to string using decode() method.

In the second part of the code, we have taken a string and converted it to bytes object using bytes() builtin function.

Similar to this, we have a lot of conversions from and to bytes type, and following is the list of tutorials for converting bytes to and fro from other types.

  • Convert Bytes to String
  • Convert String to Bytes
  • Convert Bytes to Int

Summary

In this tutorial of Python Examples, we have learned what a bytes object is in Python, how to initialize a bytes object, how to make conversions to and fro with other data types, etc.

Like what you read! Bookmark this page for quick access and please share this article with your friends and colleagues.