In this tutorial, we will learn about the Python bytes() method with the help of examples.
The bytes() method returns an immutable bytes object initialized with the given size and data.
Example
message = 'Python is fun'# convert string to bytes byte_message = bytes(message, 'utf-8')
print(byte_message) # Output: b'Python is fun'bytes() Syntax
The syntax of bytes() method is:
bytes([source[, encoding[, errors]]])bytes() method returns a bytes object which is an immutable (cannot be modified) sequence of integers in the range 0 <=x < 256.
If you want to use the mutable version, use the bytearray() method.
bytes() Parameters
bytes() takes three optional parameters:
- source (Optional) - source to initialize the array of bytes.
- encoding (Optional) - if the source is a string, the encoding of the string.
- errors (Optional) - if the source is a string, the action to take when the encoding conversion fails (Read more: String encoding)
The source parameter can be used to initialize the byte array in the following ways:
String | Converts the string to bytes using str.encode() Must also provide encoding and optionally errors |
Integer | Creates an array of provided size, all initialized to null |
Object | A read-only buffer of the object will be used to initialize the byte array |
Iterable | Creates an array of size equal to the iterable count and initialized to the iterable elements Must be iterable of integers between 0 <= x < 256 |
No source (arguments) | Creates an array of size 0 |
bytes() Return Value
The bytes() method returns a bytes object of the given size and initialization values.
Example 1: Convert string to bytes
string = "Python is interesting." # string with encoding 'utf-8'arr = bytes(string, 'utf-8')
print(arr)Output
b'Python is interesting.'Example 2: Create a byte of given integer size
size = 5arr = bytes(size)
print(arr)Output
b'\x00\x00\x00\x00\x00'Example 3: Convert iterable list to bytes
rList = [1, 2, 3, 4, 5]arr = bytes(rList)
print(arr)Output
b'\x01\x02\x03\x04\x05'Python byte() function converts an object to an immutable byte-represented object of given size and data.
Syntax : bytes(src, enc, err)
Parameters :
- src : The source object which has to be converted
- enc : The encoding required in case object is a string
- err : Way to handle error in case the string conversion fails.
Returns : Byte immutable object consisting of unicode 0-256 characters according to src type.
- integer : Returns array of size initialized to null
- iterable : Returns array of iterable size with elements equal to iterable elements( 0-256 )
- string : Returns the encoded string acc. to enc and if encoding fails, performs action according to err specified.
- no arguments : Returns array of size 0.
Python bytes() example
Example 1: Convert string to bytes
In this example, we are going to convert string to bytes using the Python bytes() function, for this we take a variable with string and pass it into the bytes() function with UTF-8 parameters. UTF-8 is capable of encoding all 1,112,064 valid character code points in Unicode using one to four one-byte code units
Python3
str = "Welcome to Geeksforgeeks"
arr = bytes(str, 'utf-8')
print(arr)
Output:
b'Welcome to Geeksforgeeks'Example 2: Array of bytes from an integer
In this example, we are going to see how to get an array of bytes from an integer using the Python bytes() function, for this we will pass the integer into the bytes() function.
Python3
number = 12
result = bytes(number)
print(result)
Output:
b'\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00'Example 3: Null parameters with bytes()
When we pass nothing in bytes() function then it creates an array of size 0.
Python3
Output:
b''Example 4: Demonstrating byte() on integers, none and iterables
Python3
a = 4
lis1 = [1, 2, 3, 4, 5]
print ("Byte conversion with no arguments : " + str(bytes()))
print ("The integer conversion results in : " + str(bytes(a)))
print ("The iterable conversion results in : " + str(bytes(lis1)))
Output:
Behavior of Bytes with Strings
Bytes accept a string as an argument and require an encoding scheme with it to perform it. The most important aspect of this is handling errors in case of encoding failure, some of the error handling schemes defined are :
String Error Handlers :
- strict : Raises the default UnicodeDecodeError in case of encode failure.
- ignore : Ignores the unencodable character and encodes the remaining string.
- replace : Replaces the unencodable character with a ‘?’.
Example: Demonstration of bytes() using string
Python3
str1 = 'GeeksfÖrGeeks'
print("Byte conversion with ignore error : " +
str(bytes(str1, 'ascii', errors='ignore')))
print("Byte conversion with replace error : " +
str(bytes(str1, 'ascii', errors='replace')))
print("Byte conversion with strict error : " +
str(bytes(str1, 'ascii', errors='strict')))
Output:
Byte conversion with ignore error : b'GeeksfrGeeks' Byte conversion with replace error : b'Geeksf?rGeeks'Exception :
UnicodeEncodeError: ‘ascii’ codec can’t encode character ‘\xd6’ in position 6: ordinal not in range(128)