如何在python中将dbus.Array fromat解码为十六进制或字符串

luc*_*fer 4 dbus python-3.x

解码方法:

dbus.Array([dbus.Byte(1), dbus.Byte(35)], signature=dbus.Signature('y'))
Run Code Online (Sandbox Code Playgroud)

到Python 代码中的十六进制字符串

Oli*_*erM 7

正如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)


use*_*116 0

也许你想要做的是将其转换为字节;下面您可以看到我如何将其写入二进制文件。

    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)