【问题标题】:How to Treat Strings as Bytes in Python 3.7.9?如何在 Python 3.7.9 中将字符串视为字节?
【发布时间】:2021-12-09 21:48:13
【问题描述】:

我有一个值列表如下:

byte_values = ["\x00", "\x02", ... ]

它们是字节值,我想将它们转换为ASCII。但是因为前面没有b,所以Python把它们当成字符串,decode方法不起作用。有没有办法让 Python 将这些字符串视为字节并将它们转换为有意义的实际字符串?

【问题讨论】:

    标签: python type-conversion byte


    【解决方案1】:

    试试str.encode:

    >>> byte_values = ["\x00", "\x02", "..." ]
    >>> [b.encode() for b in byte_values]
    [b'\x00', b'\x02', b'...']
    

    对于另一种方法,您还可以为此使用 map 内置函数:

    >>> byte_values = list(map(str.encode, byte_values))
    >>> byte_values
    [b'\x00', b'\x02', b'...']
    

    【讨论】:

    • 非常感谢!这样就完美解决了问题。
    【解决方案2】:

    您需要对字符串进行编码。

    byte_values = ["\x00", "\x02", "\x04"]
    
    for string_byte in byte_values:
        print(string_byte.encode())
    

    【讨论】:

    • 谢谢!效果很好。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-24
    • 2013-11-30
    • 1970-01-01
    • 1970-01-01
    • 2021-05-14
    • 1970-01-01
    • 2018-06-21
    相关资源
    最近更新 更多