我正在使用模块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
答案 0 :(得分:0)
您可以在小端整数解释上使用普通的Python格式。
而不是read
然后unpack
你也可以同时做到这两点:
print('{:0>4X}'.format(fp.read('uintle:16')))
然后从流中读取接下来的16位,将其解释为无符号的小端整数,然后将其格式化为十六进制,右对齐和用零填充的四个字符。