【python】bytearray和string之间转换,用在需要处理二进制文件和数据流上
最近在用python搞串口工具,串口的数据流基本读写都要靠bytearray,而我们从pyqt的串口得到的数据都是string格式,那么我们就必须考虑到如何对这两种数据进行转换了,才能正确的对数据收发。
先考虑的接收串口数据,那么格式是bytearray,下面需要处理成string格式来显示:
#按string来显示,byarray代表接收到的数据 readstr = byarray.decode('utf-8')#这样就直接转换成str格式 #强制转换 readstr = str(byarray)#用这种方式得到的数据会带有b''字符 #将读取的数据按十六进制字符显示,能让我们直接看到最底层的数据格式 readstr = ' '.join(hex(x) for x in byarray)#这句能把byarray里的数据遍历一遍转换成hex格式,而且用空格相连
将string格式转换成bytearray:
#wrstr代表从串口读到的字符串 byarray = wrstr.encode() #得到b''数据