用python将txt文本文件转换为二进制文件
用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 os
import 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=0
filepath='DSPB.bin'
binfile = open(filepath, 'ab+') #追加写入
for val in l:v1 = val.to_bytes(1, 'big') #or littlebinfile.write(v1)size+=1
binfile.close()
print("change over size: {}".format(size))
效果
源文件

转换结果(二进制打开)

本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
