1

binファイルからデータを開きたい

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

しかし、いくつかのASCII記号があるように見えます。たとえば、(つまり、「{」と「k」、「w」を意味します)

b'\ xde {\ x1d \ x86 \ xa0 \ x81kw \ xbc \ x8a'

書式設定全体は問題ありませんが、これらのASCII記号を16進数に置き換えるにはどうすればよいですか?または、このファイルを読み取るために他のモードを使用する必要がありますか?

4

1 に答える 1

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
于 2012-11-15T15:16:35.497 に答える