我有一个二进制文件,我试图通过将数据写入新文件来重新创建。其中的数据应存储为32位(4字节)二进制补码二进制整数或ASCII字符。前4个字节应该表示整数0,然后接下来的4个应该是整数4,接下来的4个应该是整数180.接下来的4个字节我需要打包014500,它代表HourHourMinuteMinuteSecondSecond
。 hexdumped
时,它应显示为:
0000000 0000 0000 0004 0000 00b4 0000 ccf8 0001
最后两列表示最后4个字节的打包版本。我好像无法复制这个。我已经尝试打包为字符串和整数(删除后者的前导零)。我不知道该怎么做。任何指导都将不胜感激。
我在运行python3.4的64位RHEL Linux机器上。我的代码是:
#!/usr/bin/python3.4
import struct
fout = open('brian', 'wb')
fout.write(struct.pack('I', 0))
fout.write(struct.pack('I', 4))
fout.write(struct.pack('I', 180))
fout.write(struct.pack('I', 14500))
# also tried:
# fout.write(struct.pack('4s', b'014500'))