用python将txt文本文件转换为二进制文件
功能关键函数打开并读取文本文件内容将文本转换为int将数据转换为字节序列 代码效果源文件转换结果(二进制打开)功能
用python将txt文本文件转换为二进制文件,文本文件内容为十六进制数据,在某些嵌入式程序烧写时必须使用二进制bin文件。
关键函数
打开并读取文本文件内容
with open(filepath, "r", encoding='utf-8') as f: #打开文本文件lines = f.readlines() #读取文件所有行为lines列表
f.readlines() 读取所有行为一个列表f.read() 读取所有文件内容f.readline() 读取一行
将文本转换为int
int(str,16) #将16进制字符串转换为int型数据
其中第二个参数表示进制数(如:2进制、8进制、16进制)
将数据转换为字节序列
v1 = val.to_bytes(1, 'big') #or little# 第一个参数为字节数;# 第二个参数为:big/little 表示大小端;
代码
import osimport structfilepath='DSPB.txt'l = []with open(filepath, "r", encoding='utf-8') as f: #打开文本lines = f.readlines() #读取文件所有行为lines列表print("lines:{}".format(len(lines)))for line in lines: #遍历所有行if (len(line)>8):d0 = int(line[0:2],16)#将16进制字符串转换为int型数据d1 = int(line[2:4],16)d2 = int(line[4:6],16)d3 = int(line[6:8],16)l.append(d3)#将每行的32bit数据进行倒序,添加到二进制列表l.append(d2)l.append(d1)l.append(d0)else:print("read over")#写文件size=0filepath='DSPB.bin'binfile = open(filepath, 'ab+') #追加写入for val in l:v1 = val.to_bytes(1, 'big') #or littlebinfile.write(v1)size+=1binfile.close()print("change over size: {}".format(size))