Suppress/ print without b' prefix for bytes in Python 3

前端 未结 5 897
野性不改
野性不改 2020-11-28 08:13

Just posting this so I can search for it later, as it always seems to stump me:

$ python3.2
Python 3.2 (r32:88445, Oct 20 2012, 14:09:50) 
[GCC 4.5.2] on lin         


        
5条回答
  •  情书的邮戳
    2020-11-28 08:51

    If the data is in an UTF-8 compatible format, you can convert the bytes to a string.

    >>> import curses
    >>> print(str(curses.version, "utf-8"))
    2.2
    

    Optionally convert to hex first, if the data is not already UTF-8 compatible. E.g. when the data are actual raw bytes.

    from binascii import hexlify
    from codecs import encode  # alternative
    >>> print(hexlify(b"\x13\x37"))
    b'1337'
    >>> print(str(hexlify(b"\x13\x37"), "utf-8"))
    1337
    >>>> print(str(encode(b"\x13\x37", "hex"), "utf-8"))
    1337
    

提交回复
热议问题