.bin二进制文件转换为.txt(.bin)文件

将.bin二进制文件转换为.txt(.bin)文件

可用于神经网络的权重偏置等.bin文件的读取

import struct
import re

#自己创建文件夹
src_filepath = "F:\\Vivado\\bin2dat\\testbin"  # 源文件文件夹路径
des_filepath = "F:\\Vivado\\bin2dat\\testtxt" #目标文件夹目录

if __name__ == "__main__":

    if not os.path.exists(src_filepath):
        print("目录不存在!!")

        os._exit(1)

    filenames = os.listdir(src_filepath)

    print("文件数目为%i" % len(filenames))

    count = 0
    width = 8
    for name in filenames:
        print(name)
        src_path = src_filepath+"\\"+name
        des_name = re.sub(".bin", '', name)#去除文件名的bin后缀
        # .txt .dat修改后缀即可
        des_path = des_filepath+"\\"+des_name + ".txt"

        src_file = open(src_path, 'rb')
        des_file = open(des_path, 'w')

        file_size = os.path.getsize(src_path)
        i = int(file_size / width)
        j = file_size % width
        if j == 0:
            k = 0
        else:
            k = 1
        total_length = i + k

        for i in range(total_length):
            data = src_file.read(4)
            # data = data[::-1]  # 大小端转换
            dat = struct.unpack("f", data)[0]
            res = str(dat)
            des_file.write(res)
            des_file.write('\n')
        src_file.close()
        des_file.close()
    print("转换结束")

你可能感兴趣的:(python,神经网络,深度学习)