场景需求:十六进制字符串需要转成二进制bin文件保存下来,例如:hello.txt文件中的内容为“012A134B5F9C”,hello.txt文件中存在六个十六进制的数据,但是我们知道在某些时候文本文件难以满足实际的项目需求,因此需要转成二进制的文件,这样做的好处在于可以减小一倍的存储空间,而且对于一般的应用而言还能直接以字节流的方式读取,以c语言为例:
FILE *fd = NULL;
unsigned char buf[1024]
fd = fopen("hello.bin", "rb");
if (fd){
fread(buf, sizeof(unsigned char), 6, fd);
fclose(fd);
fd = NULL;
}
上面的代码可以直接读取六个字节,显然但数据量比较大的时候采用读取二进制文件的方式效率会更高,因为省去了做字符的解析的过程。那么采用python3如何实现上面的需要呢?直接上代码:
import string
import os
target_f = open("bin_setting.txt", "r") #打开bin_setting.txt文件,里面配置的是文本文件的路径
line = target_f.readline()
line.strip('\n')
line.replace(' ', '')
target_f.close()
if os.path.exists(line): #如果路径存在,则做下面的工作
str_f = open(line, 'r')
c = str_f.readline()
str_f.close()
c.strip('\n')
c.replace(' ', '')
len_s = int(len(c)/2) #计算字节的个数
list_nums = [] #定义一个空的list
i = 0
f