"""
将二进制数据的bin文件转换成C语言数组的形式并保存为 .c 源文件
"""
import sys
def main():
if not sys.argv[1]:
print("bin file error")
return
binListData = []
# 读取二进制文件存放到list列表中
file = open(sys.argv[1], 'rb')
file.seek(0, 0)
while True:
binByte = file.read(1)
if len(binByte) == 0:
break
else:
binListData.append("0x%.2x" % ord(binByte))
file.close()
# 将列表中的数据写入到 .c 源文件中
fileOutput = open("bin2c.c", 'w')
fileOutput.write("unsigned long hexLength = {};\n".format(len(binListData)))
fileOutput.write("unsigned char hexData[] = \n")
fileOutput.write("{\n")
for i in range(len(binListData)):
if (i != 0) and (i % 16 == 0):
fileOutput.write("\n")
fileOutput.write(binListData[i] + ",")
elif (i + 1) == len(binListData):
fileOutput.write(binListData[i])
else:
fileOutput.write(binListData[i] + ",")
fileOutput.write("\n};")
fileOutput.close()
print("bin file to C array file success!!!")
if __name__ == '__main__':
main()
#运行:
#编辑一个bat批处理脚本文件,如下所示,双击该bat文件即可
#python bin2c.py test.bin
python将二进制数据的bin文件转换成16进制数组形式的C源文件
最新推荐文章于 2023-08-31 20:53:41 发布