将.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 (src_filepath):
print("目录不存在!!")
os._exit(1)
filenames = (src_filepath)
print("文件数目为%i" % len(filenames))
count = 0
width = 8
for name in filenames:
print(name)
src_path = src_filepath+"\\"+name
des_name = (".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 = (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 = ("f", data)[0]
res = str(dat)
des_file.write(res)
des_file.write('\n')
src_file.close()
des_file.close()
print("转换结束")