使用Python,假设偏移量为250字节,我将如何跳转到文件中的这个位置并存储32位二进制值?
我的问题是read()
返回一个字符串,我不确定我是否能够正确地前进到有效的偏移量。此外,试验struct.unpack()
它要求的长度等于指定的格式。如何根据指定格式的预期仅获取以下数据?什么是32位int的格式?
防爆。我写了一个字符串&gt; 32个字符,并且认为我可以使用'<qqqq'
获取最初的32位并将它们存储为单个32位int,不用说这是不正确的。
答案 0 :(得分:2)
with open("input.bin","rb") as f:
f.seek(250) #offset
print struct.unpack("<l",f.read(4)) #grabs one little endian 32 bit long
如果你想要4位,32位整数,你可以使用
print struct.unpack("<llll",f.read(16))
如果你只想抓住下一个32位int
print struct.unpack_from("<l",f)[0]