在bitstring unpack中更改十六进制的endian

时间:2016-07-20 22:02:22

标签: python unpack bitstring

我正在使用模块bitstring来解包24字节边界文件。我无法控制输入文件。该模块的默认解释显然是big-endian,在解包数据类型(如int或float)时很容易修复,但有些数据我想表示为十六进制值。使用unpack十六进制值,它会显示错误的字节顺序。有没有解决这个问题?示例输入:hazelcast.properties所需输出:group.name=devFromProp group.password=supA$ecret42 HAZELCAST_MAX_NO_HEARTBEAT_SECONDS=5 HAZELCAST_CLIENT_HEARTBEAT_TIMEOUT=500 HAZELCAST_BACKPRESSURE_ENABLED=true

D806

1 个答案:

答案 0 :(得分:0)

您可以在小端整数解释上使用普通的Python格式。

而不是read然后unpack你也可以同时做到这两点:

print('{:0>4X}'.format(fp.read('uintle:16')))

然后从流中读取接下来的16位,将其解释为无符号的小端整数,然后将其格式化为十六进制,右对齐和用零填充的四个字符。