Min*_*666 5 python string byte
我正在用Python 3.4.1编写一个程序,它使用PySerial来测试一些硬件.
从串行端口一次读取一个字节,然后将其附加到列表中.当列表达到一定大小时,将其发送以进行处理.根据传入的数据,有时必须在列表填满之前处理数据,因此逐字节操作.
该列表随后返回:
[b'F', b'o', b'o']
Run Code Online (Sandbox Code Playgroud)
对于部分测试脚本,我需要能够将其转换为字符串,以便我可以打印:
Foo
Run Code Online (Sandbox Code Playgroud)
我的解决方案是:
b''.join([b'F', b'o', b'o']).decode("ascii")
Run Code Online (Sandbox Code Playgroud)
但它只是感觉不对.有更好的方法吗?
IMO,这稍微更具可读性,但如果我在审核中遇到您的代码,我不会抱怨.在Python 2.7中测试:
>>> bytearray([b'F', b'o', b'o']).decode('ascii')
u'Foo'
Run Code Online (Sandbox Code Playgroud)
如果您不喜欢join外观,可以执行以下操作:
bytes.join(b'', [b'F', b'o', b'o']).decode('ascii')
Run Code Online (Sandbox Code Playgroud)
这与您的代码中几乎相同。我认为您不会找到更好的方法。
| 归档时间: |
|
| 查看次数: |
5132 次 |
| 最近记录: |