Python read a binary file (Examples)

In this Python tutorial, we will learn how to read a binary file in python, and also we will cover these topics:

  • How to read a binary file to an array in Python
  • How to read a binary file into a byte array in Python
  • How to read a binary file line by line in Python
  • Python read a binary file to Ascii
  • How to read a binary file into a NumPy array in Python
  • How to read a binary file into CSV in Python

Python read a binary file

Here, we will see how to read a binary file in Python.

  • Before reading a file we have to write the file. In this example, I have opened a file using file = open(“document.bin”,”wb”) and used the “wb” mode to write the binary file.
  • The document.bin is the name of the file.
  • I have taken a variable as a sentence and assigned a sentence “This is good”, To decode the sentence, I have used sentence = bytearray(“This is good”.encode(“ascii”)).
  • And to write the sentence in the file, I have used the file.write() method.
  • The write() is used to write the specified text to the file. And then to close the file, I have used the file.close().

Example to write the file:

file = open("document.bin","wb")
sentence = bytearray("This is good".encode("ascii"))
file.write(sentence)
file.close()
  • To read the file, I have taken the already created file document.bin and used the “rb” mode to read the binary file.
  • The document.bin is the file name. And, I have using the read() method. The read() method returns the specified number of bytes from the file.

Example to read the file:

file = open("document.bin","rb")
print(file.read(4))
file.close()

In this output, you can see that I have used print(file.read(4)). Here, from the sentence, it will read only four words. As shown in the output.

Python read a binary file
Python read a binary file

Python read a binary file to an array

Here, we can see how to read a binary file to an array in Python.

  • In this example, I have opened a file as array.bin and used the “wb” mode to write the binary file. The array.bin is the name of the file.
  • And assigned an array as num=[2,4,6,8,10] to get the array in byte converted format, I have used bytearray(). The bytearray() method returns the byte array objects.
  • To writes the array in the file, I have used the file.write(). And file.close() to close the file.

Example to write an array to the file:

file=open("array.bin","wb")
num=[2,4,6,8,10]
array=bytearray(num)
file.write(array)
file.close()
  • To read the written array from the file, I have used the same file i.e,file=open(“array.bin”,”rb”).
  • The “rb” mode is used to read the array from the file.
  • The list() function is used to create the list object number=list(file.read(3)). The file.read() is used to read the bytes from the file.
  • The file.read(3) is used to read-only three numbers from the array. The file.close() is used to close the file.

Example to read an array from the file:

file=open("array.bin","rb")
number=list(file.read(3))
print (number)
file.close()

To get the output, I have used print(number). And to close the file, I have used file.close(). In the below screenshot you can see the output.

Python read a binary file to an array
Python read a binary file to an array

Python read a binary file into a byte array

Now, we can see how to read a binary file into a byte array in Python.

  • In this example, I have opened a file called sonu.bin and “rb” mode is used to read a binary file, and sonu.bin is the name of the file. Here, I have stored some data in the sonu.bin file.
  • The byte = file.read(3) is used to read the file, and file.read(3) is used to read only 3 bytes from the file.
  • The while loop is used to read and iterate all the bytes from the file.

Example:

file = open("sonu.bin", "rb")
byte = file.read(3)
while byte:
    print(byte)
    byte = file.read(3)

To read the byte from the file, I have used print(byte). You can refer to the below screenshot for the output.

Python read a binary file into a byte array
Python read a binary file into a byte array

Python read a binary file line by line

Here, we can see how to read a binary file line by line in Python.

  • In this example, I have taken a line as lines=[“Welcome to python guides\n”] and open a file named as file=open(“document1.txt”,”wb”) document1.txt is the filename.
  • The “wb” is the mode used to write the binary files. The file.writelines(lines) is used to write the lines from the file.
  • The writelines() returns the sequence of string to the file. The file.close() method is used to close the file.

Example to write the file:

lines=["Welcome to python guides\n"]
file=open("document1.txt","wb")
file.writelines(lines)
file.close()
  • To read the written file, I have used the same filename as document1.txt, I have used file=open(“document1.txt”,”rb”) to open the file, “rb” mode is used to read the binary file and, To read the line from the file I have used line=file.readline().
  • The readline() returns one line from the file.

Example to read the file:

file=open("document1.txt","rb")
line=file.readline()
print(line)
file.close()

To get the output, print(line) is used and lastly to close the file, I have used file.close().

Python read a binary file line by line
Python read a binary file line by line

Python read a binary file to Ascii

Now, we can see how to read a binary file to Ascii in Python.

  • In this example, I have opened a file named test.bin using file = open(‘test.bin’, ‘wb’), The ‘wb’ mode is used to write the binary file and I have taken a variable as a sentence and assigned a sentence = ‘Hello Python’. To encode the sentence.
  • I have used file_encode = sentence.encode(‘ASCII’). To write the encoded sentence in the file, I have used the file.write(file_encode).
  • The file.seek() method returns the new position. To read the written file, I have used the file.read() which returns a byte from the file.
  • And then to convert the binary sentence into Ascii, I have used new_sentence = bdata. decode(‘ASCII’).

Example:

file = open('test.bin', 'wb')
sentence = 'Hello Python'
file_encode = sentence.encode('ASCII')
file.write(file_encode)
file.seek(0)
bdata = file.read()
print('Binary sentence', bdata)
new_sentence = bdata.decode('ASCII')
print('ASCII sentence', new_sentence)

To get the output as an encoded sentence, I have used print(‘ASCII sentence’, new_sentence). You can refer to the below screenshot for the output.

Python read a binary file to Ascii
Python read a binary file to Ascii

Python read a binary file into a NumPy array

Here, we can see how to read a binary file into a numpy array in Python.

  • In this example, I have imported a module called NumPy. The array = np.array([2,8,7]) is used to create an array, The .tofile is used to write all the array to the file. The array.bin is the name of the binary file.
  • The np.fromfile is used to construct an array from the data in the file. The dtype=np.int8 is the datatype object. The output of the array changes if we change np.int8 to int32 or int64.

Example:

import numpy as np
array = np.array([2,8,7]).tofile("array.bin")
print(np.fromfile("array.bin",  dtype=np.int8))

To get the output, I have used print(np.fromfile(“array.bin”, dtype=np.int8)). The below screenshot shows the output.

Python read a binary file into a NumPy array
Python read a binary file into a NumPy array

Python read a binary file into CSV

Here, we can see how to read binary file into csv in Python.

  • In this example, I have imported a module called CSV. The CSV module is a comma-separated value module. It is used to read and write tabular data in CSV format.
  • I have opened a file called lock.bin and “w” mode is used to write the file writer = csv.writer(f) is used to write the objects in the file. The lock.bin is the name of the file.
  • The writer() returns the write object which converts data into a string.
  • The writer.writerows is used to write all the rows into the file. To close the file, f.close() is used.

Example to write the csv file:

import csv
f = open("lock.bin", "w")
writer = csv.writer(f)
writer.writerows([["a", 1], ["b", 2], ["c", 3], ["d",4]])
f.close()

To read the CSV file, I have opened the file lock.bin in which data is already written, The ‘r‘ mode is used to read the file. To read the CSV file, I have used reader = csv.reader(file) to return a list of rows from the file.

Example to read the csv file:

import csv
with open('lock.bin', 'r') as file:
    reader = csv.reader(file)
    for row in reader:
        print(row)

To get the output I have used print(row). The below screenshot shows the output.

Python read a binary file into CSV
Python read a binary file into CSV

You may like the following Python tutorials:

In this tutorial we have learned about Python read a binary file, also we have covered these topics:

  • Python read a binary file to an array
  • Python read a binary file into a byte array
  • Python read a binary file line by line
  • Python read a binary file to Ascii
  • Python read a binary file into a NumPy array
  • Python read a binary file into CSV