w3resource

Modifying binary files using Python memory views


Write a Python program that reads a binary file into a memory view and saves a modified copy.

Sample Solution:

Code:

def modify_file_data(data):
    # Example modification: adding 10 to each byte
    for i in range(len(data)):
        data[i] = (data[i] + 10) % 256

def main():
    input_file_path = "fontawesome_webfont.bin"
    output_file_path = "output.bin"

    # Read binary data from input file into a bytearray
    with open(input_file_path, "rb") as input_file:
        input_data = input_file.read()
        input_bytearray = bytearray(input_data)

    # Create a memory view from the bytearray
    memory_view = memoryview(input_bytearray)

    # Modify the data using the memory view
    modify_file_data(memory_view)

    # Save the modified data to an output file
    with open(output_file_path, "wb") as output_file:
        output_file.write(memory_view)

    print("File modification complete.")

if __name__ == "__main__":
    main()

Output:

File modification complete.

In the exercise above, the binary data is read from the input file into a 'bytearray', which is writable. Then, a memory view is created from this writable 'bytearray'. The "modify_file_data()" function modifies the bytearray data through the memory view. Finally, the modified data is written to an output file.

Flowchart:

Flowchart: Modifying binary files using Python memory views.

Previous: Calculating average with NumPy memory view in Python.
Next: Concatenating memory views in Python: Function and example.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Follow us on Facebook and Twitter for latest update.