Python - How To Write Bytes to a File in Python

ID : 423

viewed : 218

Tags : PythonPython File

vote vote

96

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) 

Write BytesIO Objects to a Binary File

The 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()) 

  • Related HOW TO?