- Write Bytes to a File in Python
- Write a Byte Array to a File in Python
BytesIOObjects to a Binary File
In this tutorial, we will introduce how to write bytes to a binary file in Python.
Binary files contain strings of type bytes. When we read a binary file, an object of type bytes is returned. In Python, bytes are represented using hexadecimal digits. They are prefixed with the
b character, which indicates that they are bytes.
Write Bytes to a File in Python
To write bytes to a file, we will first create a file object using the
open() function and provide the file’s path. The file should be opened in the
wb mode, which specifies the write mode in binary files. The following code shows how we can write bytes to a file.
data = b'\xC3\xA9' with open("test.bin", "wb") as f: f.write(data)
We can also use the append mode -
a when we need to add more data at the end of the existing file. For example:
data = b'\xC3\xA9' with open("test.bin", "ab") as f: f.write(data)
To write bytes at a specific position, we can use the
seek() function that specifies the file pointer’s position to read and write data. For example:
data = b'\xC3\xA9' with open("test.bin", "wb") as f: f.seek(2) f.write(data)
Write a Byte Array to a File in Python
We can create a byte array using the
bytearray() function. It returns a mutable
bytearray object. We can also convert it to bytes to make it immutable. In the following example, we write a byte array to a file.
arr = bytearray([1,2,5]) b_arr = bytes(arr) with open("test.bin", "wb") as f: f.write(b_arr)
BytesIO Objects to a Binary File
io module allows us to extend input-output functions and classes related to file handling. It is used to store bytes and data in chunks of the memory buffer and also allows us to work with the Unicode data. The
getbuffer() method of the
BytesIO class is used here to fetch a read-write view of the object. See the following code.
from io import BytesIO bytesio_o = BytesIO(b"\xC3\xA9") with open("test.bin", "wb") as f: f.write(bytesio_o.getbuffer())