我对python解包有问题。在
self.value = struct.unpack("<I", f.read(4))[0]
对于值:0x17df320
(25031456
)返回错误
但是对于值0x116fb00
(18283264
)是可以的。价值一太大了?把“我”改成“L”?在
我仍然对此有问题;/我的输出:http://pasteboard.s3.amazonaws.com/images/TjwtuTq.png代码:
def deserialize(self, f):
buf = f.read(8)
log.error("\n#####################\nCTxOut f: %s \nf8: %s\nf8l: %i\n#####################" % (f.getvalue(), buf, len(buf)))
self.nValue = struct.unpack("<q", buf)[0]
self.scriptPubKey = deser_string(f)
错误:
[Failure instance: Traceback: : unpack requires a string argument of length 8
谢谢你的帮助!在
问题是-正如错误所说-您没有将长度为4的字符串传递给
unpack
。在不一定返回4个字节,它可能返回0到4个字节之间的任何值,这取决于缓冲区中有多少字节可用,或者流是否在EOF处—我猜就是这种情况。在
尝试检查传递给函数的字节数:
^{pr2}$相关问题 更多 >
编程相关推荐