1000字范文,内容丰富有趣,学习的好帮手!
1000字范文 > 用python将txt文本文件转换为二进制文件

用python将txt文本文件转换为二进制文件

时间:2020-12-16 11:40:21

相关推荐

用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 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))

效果

源文件

转换结果(二进制打开)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。