如何连接字节例如。样本代码:
data_bs = ''
c = b'\x00\x00\xa0\xe1\x00'
for i in list(range(0, len(c), 2)):
data_bs += c[i+1] + c[i]错误码:
TypeError: can only concatenate str (not "int") to str我想要修正字节顺序。
发布于 2021-08-10 17:18:41
直接将字节索引为int,因此这里最简单的解决方案是将data_bs变成bytes并使用片:
In [132]: data_bs = b''
...: c = b'\x00\x00\xa0\xe1\x00'
...:
...: for i in list(range(0, len(c), 2)):
...: data_bs += c[i+1:i+2] + c[i:i+1]
...:
In [133]: data_bs
Out[133]: b'\x00\x00\xe1\xa0\x00'发布于 2021-08-10 17:21:41
现在还不清楚你想从问题中把他们连在一起。但是,如果您想创建一个像data_bs这样的字符串,您可以这样做:
for i in c:
data_bs += str(i)
print(data_bs)发布于 2021-08-10 17:22:20
为了获得最好的性能,预先分配输出数组,然后按照所需的顺序复制字节。
a = b'\x00\x01\x02\x03'
b = bytearray(len(a))
for cnt in range(0, int(len(a) / 2)):
b[cnt * 2] = a[cnt * 2 + 1]
b[cnt * 2 + 1] = a[cnt * 2]
print(a)
print(b)考虑一下,如果长度是奇怪的,该怎么做?
if len(a) % 2 == 1:
b[len(a) - 1] = a[len(a) - 1]https://stackoverflow.com/questions/68730985
复制相似问题