0

I'm trying to decode a binary file so that I can get a better look at how it's created. I'm trying to read it in using open(file, 'rb') and then write the converted text to .txt file. I can't seem to find a method that writes the text out in a format that I can understand. Are all binary converted the same way?

import os

def read(inputFile, outputFile):
    
    if os.path.exists(outputFile):
        os.remove(outputFile) 
    o = open(outputFile, "a")

    with open(inputFile, "rb") as i:
        while (byte := i.read(1)):
            #mapped = map(ord, byte)
            o.write(str(byte))

read('triangle.shp', 'test.txt')

Here is the triangle.shp file that I am trying to convert. I think that it was created using C

The output file looks like this

b'\x00'b'\x00'b'\x00'b'\xe0'b'\xff'b'\xff'b'\xdf'b'?'b'\x00'b'\x00'b'\x00'b'\xe0'b'\xff'b'\xff'b'\xdf'b'?'b'\x00'b'\x00'b'\x00'b'\xe0'b'\xff'b'\xff'b'\xdf'b'?'b'\x00'b'\x00'b'\x00'b'\xe0'b'\xff'b'\xff'b'\xdf'b'?'b'\x00'b'\x00'b'\x00'b'\xe0'b'\xff'b'\xff'b'\xdf'b'?'b'\x00'b'\x00'b'\x00'b'\xe0'b'\xff'b'\xff'b'\xdf'b'?'b'\x00'b'\x00'b'\x00'b'\xe0'b'\xff'b'\xff'b'\xdf'b'?'b'\x00'b'\x00'b'\x00'b'\xe0'b'\xff'b'\xff'b'\xdf'b'?'b'\x00'b'\x00'b'\x00'b'\xe0'b'\xff'b'\xff'b'\xdf'b'?'b'\x00'b'\x00'b'\x00'b'\xe0'b'\xff'b'\xff'b'\xdf'b'?'b'\x00'b'\x00'b'\x00'b'\xe0'b'\xff'b'\xff'b'\xdf'b'?'b'\x00'b'\x00'b'\x00'b'\xe0'b'\xff'b'\xff'b'\xdf'b'?'b'\x00'b'\x00'b'\x00'b'\xe0'b'\xff'b'\xff'b'\xdf'b'?'b'\x00'b'\x00'b'\x00'b'\xe0'b'\xff'b'\xff'b'\xdf'b'?'b'\x00'b'\x00'b'\x00'b'\xe0'b'\xff'b'\xff'b'\xdf'b'?'b'\x00'b'\x00'b'\x00'b'\xe0'b'\xff'b'\xff'b'\xdf'b'?'b'\x00'b'\x00'b'\x00'b'\xe0'b'\xff'b'\xff'b'\xdf'b'?'b'\x00'b'\x00'b'\x00'b'\xe0'b'\xff'b'\xff'b'\xdf'b'?'b'\x00'b'\x00'b'\x00'b'\xe0'b'\xff'b'\xff'b'\xdf'b'?'b'\x00'b'\x00'b'\x00'b'\xe0'b'\xff'b'\xff'b'\xdf'b'?'b'\x00'b'\x00'b'\x00'b'\xe0'b'\xff'b'\xff'b'\xdf'b'?'b'\x00'b'\x00'b'\x00'b'\xe0'b'\xff'b'\xff'b'\xdf'b'?'b'\x00'b'\x00'b'\x00'b'\xe0'b'\xff'b'\xff'b'\xdf'b'?'b'\x00'b'\x00'b'\x00'b'\xe0'b'\xff'b'\xff'b'\xdf'b'?'b'\x00'b'\x00'b'\x00'b'\xe0'b'\xff'b'\xff'b'\xdf'b'?'b'\x00'b'\x00'b'\x00'b'\xe0'b'\xff'b'\xff'b'\xdf'b'?'b'\x00'b'\x00'b'\x00'b'\xe0'b'\xff'b'\xff'b'\xdf'b'?'b'\x00'b'\x00'b'\x00'b'\xe0'b'\xff'b'\xff'b'\xdf'b'?'b'\x00'b'\x00'b'\x00'b'\xe0'b'\xff'b'\xff'b'\xdf'b'?'b'\x00'b'\x00'b'\x00'b'\xe0'b'\xff'b'\xff'b'\xdf'b'?'b'\x00'b'\x00'b'\x00'b'\xe0'b'\xff'b'\xff'b'\xdf'b'?'b'\x00'b'\x00'b'\x00'b'\xe0'b'\xff'b'\xff'b'\xdf'b'?'b'\x00'b'\x00'b'\x00'b'\xe0'b'\xff'b'\xff'b'\xdf'b'?'b'\x00'b'\x00'b'\x00'b'\xe0'b'\xff'b'\xff'b'\xdf'b'?'b'\x00'b'\x00'b'\x00'b'\xe0'b'\xff'b'\xff'b'\xdf'b'?'b'\x00'b'\x00'b'\x00'b'\xe0'b'\xff'b'\xff'b'\xdf'b'?'b'\x00'b'\x00'b'\x00'b'\xe0'b'\xff'b'\xff'b'\xdf'b'?'b'\x00'b'\x00'b'\x00'b'\xe0'b'\xff'b'\xff'b'\xdf'b'?'b'\x00'b'\x00'b'\x00'b'\xe0'b'\xff'b'\xff'b'\xdf'b'?'b'\x00'b'\x00'b'\x00'b'\xe0'b'\xff'b'\xff'b'\xdf'b'?'b'\x00'b'\x00'b'\x00'b'\xe0'b'\xff'b'\xff'b'\xdf'b'?'b'\x00'b'\x00'b'\x00'b'\xe0'b'\xff'b'\xff'b'\xdf'b'?'b'\x00'b'\x00'b'\x00'b'\xe0'b'\xff'b'\xff'b'\xdf'b'?'b'\x00'b'\x00'b'\x00'b'\xe0'b'\xff'b'\xff'b'\xdf'b'?'b'\x00'b'\x00'b'\x00'b'\xe0'b'\xff'b'\xff'b'\xdf'b'?'b'\x00'b'\x00'b'\x00'b'\xe0'b'\xff'b'\xff'b'\xdf'b'?'b'\x00'b'\x00'b'\x00'b'\xe0'b'\xff'b'\xff'b'\xdf'b'?'b'\x00'b'\x00'b'\x00'b'\xe0'b'\xff'b'\xff'b'\xdf'b'?'b'\x00'b'\x00'b'\x00'b'\xe0'b'\xff'b'\xff'b'\xdf'b'?'b'\x00'b'\x00'b'\x00'b'\xe0'b'\xff'b'\xff'b'\xdf'b'?'b'\x00'b'\x00'b'\x00'b'\xe0'b'\xff'b'\xff'b'\xdf'b'?'b'\x00'b'\x00'b'\x00'b'\xe0'b'\xff'b'\xff'b'\xdf'b'?'b'\x00'b'\x00'b'\x00'b'\xe0'b'\xff'b'\xff'b'\xdf'b'?'b'\x00'b'\x00'b'\x00'b'\xe0'b'\xff'b'\xff'b'\xdf'b'?'b'\x00'b'\x00'b'\x00'b'\xe0'b'\xff'b'\xff'b'\xdf'b'?'b'\x00'b'\x00'b'\x00'b'\xe0'b'\xff'b'\xff'b'\xdf'b'?'b'\x00'b'\x00'b'\x00'b'\xe0'b'\xff'b'\xff'b'\xdf'b'?'b'\x00'b'\x00'b'\x00'b'\xe0'b'\xff'b'\xff'b'\xdf'b'?'b'\x00'b'\x00'b'\x00'b'\xe0'b'\xff'b'\xff'b'\xdf'b'?'b'\x00'b'\x00'b'\x00'b'\xe0'b'\xff'b'\xff'b'\xdf'b'?'b'\x00'b'\x00'b'\x00'b'\xe0'b'\xff'b'\xff'b'\xdf'b'?'b'\x00'b'\x00'b'\x00'b'\xe0'b'\xff'b'\xff'b'\xdf'b'?'b'\x00'b'\x00'b'\x00'b'\xe0'b'\xff'b'\xff'b'\xdf'b'?'b'\x00'b'\x00'b'\x00'b'\xe0'b'\xff'b'\xff'b'\xdf'b'?'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'@'b'h'b'@'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'@'b'x'b'@'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'@'b'x'b'@'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'@'b'x'b'@'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'@'b'x'b'@'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'@'b'x'b'@'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'@'b'x'b'@'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'@'b'x'b'@'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'@'b'x'b'@'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'@'b'x'b'@'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'@'b'x'b'@'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'@'b'x'b'@'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'@'b'x'b'@'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'@'b'x'b'@'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'@'b'x'b'@'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'@'b'x'b'@'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'@'b'x'b'@'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'@'b'x'b'@'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'@'b'x'b'@'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'@'b'x'b'@'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'@'b'x'b'@'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'@'b'x'b'@'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'@'b'x'b'@'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'@'b'x'b'@'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'@'b'x'b'@'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'@'b'x'b'@'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'@'b'x'b'@'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'@'b'x'b'@'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'@'b'x'b'@'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'@'b'x'b'@'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'@'b'x'b'@'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'@'b'x'b'@'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'@'b'x'b'@'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'@'b'x'b'@'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'@'b'x'b'@'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'@'b'x'b'@'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'@'b'x'b'@'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'@'b'x'b'@'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'@'b'x'b'@'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'@'b'x'b'@'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'@'b'x'b'@'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'@'b'x'b'@'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'@'b'x'b'@'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'@'b'x'b'@'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'@'b'x'b'@'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'@'b'x'b'@'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'@'b'x'b'@'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'@'b'x'b'@'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'@'b'x'b'@'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'@'b'x'b'@'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'@'b'x'b'@'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'@'b'x'b'@'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'@'b'x'b'@'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'@'b'x'b'@'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'@'b'x'b'@'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'@'b'x'b'@'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'@'b'x'b'@'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'@'b'x'b'@'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'@'b'x'b'@'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'@'b'x'b'@'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'@'b'x'b'@'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'@'b'x'b'@'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'@'b'x'b'@'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'n'b'@'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'n'b'@'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x02'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'b'\x00'


This is what I was told about the file

Its a somewhat basic file format if you're OK with these things, its a little messy in value ranges and mixed data types, but it's somewhat simple (headerless etc).

typedef struct Shape_Saving_type
    {
        double val_curve[64];
        double val_EnvX[64];
        double val_EnvY[64];
        double reserved[64];
        char CurrentNumPoints;
        unsigned char Shapeversion;  //well, good for 255 versions ;)
        char padding[6]; //padding[0] set to 1 indicates LFOTOol 1.5 (vector) sizes
              
    }Chunk_Shape_Saving;

You should fill with these values:

val_curve[] = 0 to 1

val_EnvX[] = 0 to 388.0 range

val_EnvY[] = 0 to 240.0 range

reserved[] fill with 0.0

CurrentNumPoints is self explanatory

Shapeversion = 1;

padding[] fill with 0.0

9
  • For a binary file that looks completely reasonable. It doesn't appear to be a text file created with some bizarre encoding. You'll need to get more information on how the file was created. Commented Nov 15, 2020 at 20:51
  • If the file was purely a string encoded into binary, this might help: stackoverflow.com/questions/40557335/…. But as Mark said you need more info. Commented Nov 15, 2020 at 20:52
  • All files are binary, even if their name ends with .txt. Commented Nov 15, 2020 at 20:58
  • @MarkRansom I added all I know about the file so far Commented Nov 15, 2020 at 20:59
  • @Keivan I added all I know about the file so far Commented Nov 15, 2020 at 21:00

1 Answer 1

1

You should use the struct module to deal with converting binary information. For example to read the val_curve values:

import struct
bin = input_file.read(64*8)  # doubles are each 8 bytes
val_curve = struct.unpack('64d', bin)
Sign up to request clarification or add additional context in comments.

4 Comments

I'm not trying to look at the individual values, I'm trying to look at the whole file so that I have an example for how to create one of these files myself, which I'm starting to think might involve creating a struct using that module, and then converting that struct to binary
@Sam well your question definitely says you're trying to read the file and write out a text version of it. Once you've done that it should be relatively easy to reverse the process for writing your binary file.
I meant that it looks like you’re only reading one variable, whereas I would like to read the whole file exactly the way it is structured
@Sam doesn't my answer give you enough information to figure that out on your own?

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.