【问题标题】:Convert byte string to bytes or bytearray将字节字符串转换为字节或字节数组
【发布时间】:2016-02-10 09:01:50
【问题描述】:

我有一个字符串如下:

  b'\x00\x00\x00\x00\x07\x80\x00\x03'

如何将其转换为字节数组? ...然后从字节返回字符串?

【问题讨论】:

    标签: python byte bytearray


    【解决方案1】:

    在 python 3 中:

    >>> a=b'\x00\x00\x00\x00\x07\x80\x00\x03'
    >>> b = list(a)
    >>> b
    [0, 0, 0, 0, 7, 128, 0, 3]
    >>> c = bytes(b)
    >>> c
    b'\x00\x00\x00\x00\x07\x80\x00\x03'
    >>>
    

    【讨论】:

    • 我刚刚意识到b'\x00\x00\x00\x00\x07\x80\x00\x03' 是可迭代的。谢谢。
    • 小心:使用列表b = list(a) 允许(错误地)b[5] = 1550,因为 b 不是字节数组。但是,如果 b = bytearray(a) ,那么 b[5] = 1550 会报错,因为 1550 不是一个字节。
    • 'str' 对象不能被解释为整数
    【解决方案2】:

    从字符串到字节数组:

    a = bytearray.fromhex('00 00 00 00 07 80 00 03')
    

    a = bytearray(b'\x00\x00\x00\x00\x07\x80\x00\x03')
    

    然后返回字符串:

    key = ''.join(chr(x) for x in a)
    

    【讨论】:

    • 所以我需要先用空格替换\x
    • 不,只是 a = bytearray(b'\x00\x00\x00\x00\x07\x80\x00\x03')
    猜你喜欢
    • 1970-01-01
    • 2021-11-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多