Python convert binary to file

I want to convert a bin file to txt file in python.

with open("atb.bin", "rb") as file:

     data = file.read(8)

datastring = str(data)

print(datastring)
print(' '.join(str(ord(c)) for c in datastring))

The output I get is

b'\x14\x12\x1c\x1a#\x00-d'
98 39 92 120 49 52 92 120 49 50 92 120 49 99 92 120 49 97 35 92 120 48 48 45 100 39

Now, how do I convert this to decimal and store in a txt file?

Python convert binary to file

asked Apr 5, 2018 at 15:21

3

Your main mistake is doing:

datastring = str(data)

As it converts the representation of the data object to string, with b prefix and quotes, and escaping... wrong.

read your file as you're doing:

with open("atb.bin", "rb") as file:
     data = file.read(8)

now data is a bytes object, no need for ord in python 3, values are already integer. Now open a text file and dump the values (converting integers to string, decimal):

with open("out.txt", "w") as f:
   f.write(" ".join(map(str,data))):
   f.write("\n")

In python 2 you'd need to get the character code then convert to string:

   f.write(" ".join([str(ord(c)) for c in data]))

answered Apr 5, 2018 at 15:28

Python convert binary to file

0

Your Python converts into text, the text representation of the 8 characters in the file.

Hence, instead of

print(' '.join(str(ord(c)) for c in datastring))

you should have put

print(' '.join(str(ord(c)) for c in data))

which you can then write to a file using standard techniques.

ie. (Python 2)

>>> data=b'\x14\x12\x1c\x1a#\x00-d'
>>> print(' '.join(str(ord(c)) for c in data))
20 18 28 26 35 0 45 100

(Python 3)

>>> data=b'\x14\x12\x1c\x1a#\x00-d'
>>> print(' '.join(str(c) for c in data))
20 18 28 26 35 0 45 100

answered Apr 5, 2018 at 15:32

MikeWMikeW

4,9321 gold badge33 silver badges28 bronze badges

1

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

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 convert binary to file
Python read a binary file

You may like Python Pandas CSV Tutorial and File does not exist Python.

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 thebinary 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 convert binary to file
Python read a binary file to an array
  • How to Convert Python string to byte array with Examples
  • Python Array with Examples
  • Create an empty array in Python

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 convert binary to file
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 convert binary to file
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 convert binary to file
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 convert binary to file
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 convert binary to file
Python read a binary file into CSV

You may like the following Python tutorials:

  • How to draw a shape in python using Turtle
  • Python ask for user input (Examples)
  • How to Convert Python string to byte array with Examples
  • Python pass by reference or value with examples
  • Python select from a list + Examples
  • Union of sets Python + Examples
  • Introduction to Python Interface
  • How to convert a String to DateTime in Python
  • Python list comprehension using if-else

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

Python convert binary to file

Python is one of the most popular languages in the United States of America. I have been working with Python for a long time and I have expertise in working with various libraries on Tkinter, Pandas, NumPy, Turtle, Django, Matplotlib, Tensorflow, Scipy, Scikit-Learn, etc… I have experience in working with various clients in countries like United States, Canada, United Kingdom, Australia, New Zealand, etc. Check out my profile.

How do you write binary data to a file in Python?

How to write to a binary file in Python.
file = open("sample.bin", "wb").
file. write(b"This binary string will be written to sample.bin").
file. close().

How do you decode a binary file in Python?

You can open the file using open() method by passing b parameter to open it in binary mode and read the file bytes. open('filename', "rb") opens the binary file in read mode.

How do you convert a binary file?

How to Use Binary Code Translator?.
Step 1: Paste the binary code into the box you want to convert to plain text. ... .
Step 2: Click the “Convert” button for conversion..
Step 3: The converted plain text will appear in the right side box immediately..
Step 4: Copy the output text or download the ..

Can Python handle binary files?

Many ways exist in Python to read the binary file. You can read the particular number of bytes or the full content of the binary file at a time. Create a python file with the following script. The open() function has used to open the string.