小编Nik*_*l S的帖子

如何从二进制文件中读取块并使用Python或Perl使用unpack提取结构?

我有一个二进制文件,其中包含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()
Run Code Online (Sandbox Code Playgroud)

这是标题后的样子.

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
Run Code Online (Sandbox Code Playgroud)

如果你们可以帮忙解决这个问题.Python或PERL并不重要.谢谢!!!!

python perl struct unpack

2
推荐指数
1
解决办法
2352
查看次数

标签 统计

perl ×1

python ×1

struct ×1

unpack ×1