我有一个二进制文件,它有 4 KB 的标头信息,然后是 28 字节的数据,然后是我想要读取的 24 字节。我如何每 24 和 28 个字节循环一次并读取(或提取)这 28 和 24 个字节的前 8 个字节的数据。在 python 中我做了这样的事情。不确定如何处理可变长度
import sys
import struct
f = open(sys.argv[1],"rb")
f.seek(4096)
byte = f.read(28)
while byte != "":
ticks = struct.unpack("<ll",byte[:8]) #not sure how to read 8 bytes
byte = f.read(28)
f.close()
这是标题之后的样子。
Length
(bytes) Field Name
8 TS_INCR
4 SEQID
2 OP
2 LUN
4 NBLKS
8 LBA
Length
(bytes) Field Name
8 TS_INCR
4 SEQID
2 OP
2 LUN
4 LATENCY_TICKS
2 HOST_ID
2 HOST_LUN
如果你们可以帮助解决这个问题,请。Python 或 PERL 无关紧要。谢谢!!!!