将字节列表转换为字节字符串

Posted

技术标签:

【中文标题】将字节列表转换为字节字符串【英文标题】:Convert a list of bytes to a byte string 【发布时间】:2014-11-08 00:22:09 【问题描述】:

我有以下字节列表:

[b'S', b'\x00', b't', b'\x00', b'a', b'\x00', b'n', b'\x00', b'd', b'\x00', b'a', b'\x00', b'r', b'\x00', b'd', b'\x00', b'F', b'\x00', b'i', b'\x00', b'r', b'\x00', b'm', b'\x00', b'a', b'\x00', b't', b'\x00', b'a', b'\x00', b'.', b'\x00', b'i', b'\x00', b'n', b'\x00', b'o', b'\x00', b'y', b'\x02', b'\x03', b'S', b'\x00', b't', b'\x00', b'a', b'\x00', b'n', b'\x00', b'd', b'\x00', b'a', b'\x00', b'r', b'\x00', b'd', b'\x00', b'F', b'\x00', b'i', b'\x00', b'r', b'\x00', b'm', b'\x00', b'a', b'\x00', b't', b'\x00', b'a', b'\x00', b'.', b'\x00', b'i', b'\x00', b'n', b'\x00', b'o', b'\x00', b'y', b'\x02', b'\x03', b'S', b'\x00', b't', b'\x00', b'a', b'\x00', b'n', b'\x00', b'd', b'\x00', b'a', b'\x00', b'r', b'\x00', b'd', b'\x00', b'F', b'\x00', b'i', b'\x00', b'r', b'\x00', b'm', b'\x00', b'a', b'\x00', b't', b'\x00', b'a', b'\x00', b'.', b'\x00', b'i', b'\x00', b'n', b'\x00', b'o', b'\x00', b'y', b'\x02', b'\x03', b'S', b'\x00', b't', b'\x00', b'a', b'\x00', b'n', b'\x00', b'd', b'\x00', b'a', b'\x00', b'r',

有没有一种简单的方法可以将它转换成一个长的byte?我猜技术上称为bytestring(虽然我不确定)。

注意,我查看了here,但它对我不起作用。另外,一个长的byte 对象(例如b'\f\x04\55')的正确术语是byte object 还是别的什么?

【问题讨论】:

【参考方案1】:

使用bytes.join:

>>> b = [b'S', b'\x00', b't', b'\x00', b'a']
>>> b''.join(b)  # b'': separator
b'S\x00t\x00a'

【讨论】:

【参考方案2】:

bytesbytearray 对象具有 join 方法:

In [37]: b''.join([b'S', b'\x00', b't', b'\x00', b'a', b'\x00', b'n', b'\x00', b'd', b'\x00'])
Out[37]: b'S\x00t\x00a\x00n\x00d\x00'

【讨论】:

以上是关于将字节列表转换为字节字符串的主要内容,如果未能解决你的问题,请参考以下文章

将整数列表转换为字节/ASCII字符串并返回?快速地?

将 List<boolean> 转换为字符串

将字节转换为 dart 中的位,反之亦然

在 Python 中将十六进制字符串转换为字节列表

将字节数组转换为字符串并返回字节数组的问题

我正在使用二进制阅读器将字符串转换为字节,如何将字节反转回相同的字符串 [重复]