解码方法:
dbus.Array([dbus.Byte(1), dbus.Byte(35)], signature=dbus.Signature('y'))
Run Code Online (Sandbox Code Playgroud)
到Python 代码中的十六进制或字符串。
正如DBus 规范所说,y意味着字节。dbus.Array([...], signature=dbus.Signature('y'))字节数组也是如此。
让我们考虑这个值:
value = dbus.Array([dbus.Byte(76), dbus.Byte(97), dbus.Byte(98), dbus.Byte(65), dbus.Byte(80), dbus.Byte(97), dbus.Byte(114), dbus.Byte(116)], signature=dbus.Signature('y'))
Run Code Online (Sandbox Code Playgroud)
如果您知道您的值包含一个字符串:
print("value:%s" % ''.join([str(v) for v in value]))
# Will print 'value:LabAPart'
Run Code Online (Sandbox Code Playgroud)对于字节数组:
print("value:%s" % [bytes([v]) for v in value])
# Will print 'value:[b'L', b'a', b'b', b'A', b'P', b'a', b'r', b't']'
Run Code Online (Sandbox Code Playgroud)对于整数数组:
print("value:%s" % [int(v) for v in value])
# Will print 'value:[76, 97, 98, 65, 80, 97, 114, 116]'
Run Code Online (Sandbox Code Playgroud)也许你想要做的是将其转换为字节;下面您可以看到我如何将其写入二进制文件。
localFile = open ('/home/youruser/data.bin', 'wb')
try:
for byteValue in arrayValue:
localFile.write(chr(byteValue))
finally:
localFile.close()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3312 次 |
| 最近记录: |