打开bin文件并将ascii转换为hex

时间:2012-11-15 15:11:16

标签: python io python-3.x binary

我想从bin文件中打开一些数据

import io
data=io.open('bpsk_2m_b11.rd16','rb').read()
print (data)

但似乎有一些ASCII符号,例如(我的意思是'{'和'k','w')

B '\ XDE {\ X1D \ 86 \ XA0 \ x81kw \ XBC \ x8a'

我对整个格式化的东西很好但是如何用十六进制替换这些ASCII符号?或者我应该使用其他模式来阅读此文件吗?

1 个答案:

答案 0 :(得分:1)

一切正常,b'{'只是写b'\x7b'的另一种方式:

>>> b'{' == b'\x7b'
True

您可以使用以下辅助方法创建仅包含转义的字符串:

import binascii
def to_byte_escapes(b):
   return ''.join('\\x' + binascii.hexlify(byte) for byte in b)

然后你会得到:

>>> print(to_byte_escapes(b'\xde{\x1d\x86\xa0\x81kw\xbc\x8a'))
\xde\x7b\x1d\x86\xa0\x81\x6b\x77\xbc\x8a