在Python 3中将字节列表转换为字符串

时间:2015-06-15 12:52:17

标签: python string byte

我正在用Python 3.4.1编写一个程序,它使用PySerial测试一些硬件。

每次从串行端口读取一个字节,然后将其附加到列表中。当列表达到一定大小时,将其发送以进行处理。 根据传入的数据,有时必须在列表填满之前处理数据,因此逐字节操作。

然后列表返回:

[b'F', b'o', b'o']

对于部分测试脚本,我需要能够将其转换为字符串,以便我可以打印:

Foo

我的解决方案是:

b''.join([b'F', b'o', b'o']).decode("ascii")

但这感觉不对。有更好的方法吗?

2 个答案:

答案 0 :(得分:5)

IMO,这稍微有点可读性,但如果我在审核中遇到您的代码,我不会抱怨。在Python 2.7中测试:

>>> bytearray([b'F', b'o', b'o']).decode('ascii')
u'Foo'

答案 1 :(得分:0)

如果您不喜欢join的外观,可以执行以下操作:

bytes.join(b'', [b'F', b'o', b'o']).decode('ascii')

这与您的代码几乎相同。我认为你不会找到更好的方法。