从文件开头偏移开始并解压缩4字节字

时间:2014-07-28 15:23:04

标签: python file-io struct format unpack

使用Python,假设偏移量为250字节,我将如何跳转到文件中的这个位置并存储32位二进制值?

我的问题是read()返回一个字符串,我不确定我是否能够正确地前进到有效的偏移量。此外,试验struct.unpack()它要求的长度等于指定的格式。如何根据指定格式的预期仅获取以下数据?什么是32位int的格式? 防爆。我写了一个字符串&gt; 32个字符,并且认为我可以使用'<qqqq'获取最初的32位并将它们存储为单个32位int,不用说这是不正确的。

1 个答案:

答案 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]