1
import binascii
import sys
from os.path import getsize

target = './'+sys.argv[1]

with open(target,'rb+') as f:
    file_size = getsize(target)
    string1 = f.read(6)
    
    print("Size : %d"%file_size)
    print (binascii.b2a_hex(string1))

我有一个大小为 1220 字节的文件。忽略前 20 个字节我想从第 21 个字节输出 6 个字节。

例如,


00 00 00 00 00 ... 00 00 00 ( 20bytes 0x00 ) AA BB CC DD EE FF
GG HH II JJ KK LL
MM ...

我的预期输出:
AA BB CC DD EE FF
GG HH II JJ KK LL
MM.... .. .. 我想一一加载和输出 6 个字节,如图所示。

我编写了代码来获取文件大小。但我无法完全弄清楚在那之后该怎么做。所以我寻求帮助。

4

1 回答 1

0

到目前为止,您的代码会读取前 6 个字节。要在读取前跳过 20 个字节,您可以使用seek()方法[1]。要显示由空格分隔的十六进制值,您可以使用bytes.hex函数[2]。将所有内容放在一起,您可以使用以下内容:

import binascii
import sys
from os.path import getsize

target = './'+sys.argv[1]

with open(target,'rb+') as f:
    file_size = getsize(target)
    
    # read 6 bytes from position 20
    f.seek(20)
    string1 = f.read(6)

    print("Size : %d"%file_size)
    print (string1.hex(' ',1))
于 2022-02-19T13:40:26.683 回答