我在这样的节点js中使用带Buffer的二进制数据。
<Buffer 01 05 01 4c 61 60>
如何在Python中使用它?
我试图做到这一点,但结果是
a = a.to_bytes(2,'big')
b = b.to_bytes(1, 'big')
result = a + b + str.encode(c)
b“ \ x01 \ x05 \ x01 {'Lang':'En'}”
或
codecs.encode(result,'hex')
b“ 0105014c6160”
答案 0 :(得分:0)
根据标题和您的措辞,听起来您正在寻找类似于node.js Buffer.from的东西,它返回一个可变数组,如二进制数据。
Python具有bytearray函数,可让您对数据进行突变
>>> a = bytearray('hello, world!', encoding='utf8')
>>> a[0]
104
>>> a[0] = 105
>>> x
bytearray(b'iello, world!')
如果您不需要可变性,则可以将字符串编码为字节'hello, world!'.encode('utf8')
(假设您使用的编码是utf8)。
您可以像这样覆盖它的表示方式。
>>> class MyBytes(bytes):
... def __repr__(self):
... return '<Bytes {}>'.format(' '.join([hex(i) for i in self]))
...
>>> MyBytes('hello', encoding='utf8')
<Bytes 0x68 0x65 0x6c 0x6c 0x6f>