Python Read File Byte by Byte Write to New File
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.
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 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.
- 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 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 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 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 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.
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 Read File Byte by Byte Write to New File
Source: https://pythonguides.com/python-read-a-binary-file/
0 Response to "Python Read File Byte by Byte Write to New File"
Post a Comment