How to write a raw hex byte to stdout in Python 3?

前端 未结 3 1789
一整个雨季
一整个雨季 2020-12-09 22:39

How do you get Python 3 to output raw hexadecimal byte? I want to output the hex 0xAA.

If I use print(0xAA), I get the ASCII \'170\'.

3条回答
  •  自闭症患者
    2020-12-09 23:22

    You can also use the hex-byte escape sequence ("\x") in a bytestring, specifying the sys.stdout.buffer.write() method:

    $ python -c 'import sys; sys.stdout.buffer.write(b"\x74\x68\x65\x73\x65\x20\x61\x72\x65\x20\x72\x61\x77\x20\x62\x79\x74\x65\x73\x21\xde\xad\xbe\xef")'
    

    will output on your terminal:

    these are raw bytes!ޭ��%
    

    and inspecting with xxd:

    $ python -c 'import sys; sys.stdout.buffer.write(b"\x74\x68\x65\x73\x65\x20\x61\x72\x65\x20\x72\x61\x77\x20\x62\x79\x74\x65\x73\x21\xde\xad\xbe\xef")' | xxd
    00000000: 7468 6573 6520 6172 6520 7261 7720 6279  these are raw by
    00000010: 7465 7321 dead beef                      tes!....
    

提交回复
热议问题