股票

binascii.b2a_hex返回16进制字符串时数据丢失

读取bin文件中的十六进制字符串时,得到的数据需要整理为16进制的字符串格式输出,例如六个数据的“7E013195367E”,要原样打印出来,如果直接使用print会对ASC码进行转义,出来的基本是乱码。现在有两个函数可以使用:hexlifyb2a_hex

网上查了一个方法:temp = binascii.b2a_hex(data)[2:-1]

开始不懂[2:-1]的含义,以为是什么特殊的用法,结果得到的结果总是少一个半字节,换用hexlify就没有问题了。现在突然发现,binascii.b2a_hex返回的就是12个字节的字符串,而[2:-1]的意思就是从第2位(从0开始计数)开始打印,到倒数第二位(-1表示最后一位不打印)。基础不牢啊!!!

打赏
原文链接:,转发请注明来源!

发表评论