嗨,我有以下代码可以在int数组和字节类型变量之间进行转换:
def BYTES_INTARRAY(x):
data_ints = struct.unpack('<' + 'B'*len(x), x)
return data_ints
def INTARRAY_BYTES(x):
data_bytes = struct.pack('<' + 'B'*len(x), *x)
return data_bytes
对于长度大于1的字节,它似乎工作得很好,但是当只有1个字节时,它给出了一个奇怪的结果。
例如:
print( INTARRAY_BYTES([255,25]) )
返回:b'\xff\x19'
然后反馈:
print( BYTES_INTARRAY(b'\xff\x19') )
返回:
(255, 25)
但是如果只有1个字节:
print( INTARRAY_BYTES([255]) )
返回:b'\xff'
并反馈:
print( BYTES_INTARRAY(b'\xff') )
返回:(255,)
1)255之后的,
到底是什么。我不明白在数字后加逗号和空逗号的语法。
2)这段代码是针对python 2.x的,是否有更有效的方法针对python 3.x?
答案 0 :(得分:0)