使用python脚本编辑二进制文件

时间:2015-09-26 09:00:10

标签: python

我想使用python脚本对二进制文件进行一些操作。 我有一个二进制文件。我想将二进制数据附加到它。

例:
文件abc.bin可用。

命令:

  

python file_append.py abc.bin 1234 5678

我想在二进制文件abc.bin的末尾添加“1234”和“5678”。

所以我用“ab”模式打开文件(追加+二进制)。 当我附加命令行参数时,它会附加参数的ASCII值。

如何在文件末尾附加十六进制值(此处为1234和5678)?

代码:

fo = open(str(sys.argv[1]), 'ab')
fv = string.atoi(sys.argv[2])
ft = string.atoi(sys.argv[3])
fo.write(fv)

2 个答案:

答案 0 :(得分:1)

如果要解析命令行参数,将它们拆分为两位数组,然后将这些数字解释为ASCII六进制代码,并将其附加到感兴趣的二进制文件的末尾,那么你可以这样做< / p>

of = open(sys.argv[1], 'ab')
for arg in sys.argv[2:]:
    val = int(arg)
    for b in (val/100, val%100):
        of.write(chr(int(str(b), base=16)))

python file_append.py abc.bin 1234 5678然后生成文件abc.bin,其内容可以使用显示的hexdump -C abc.bin进行检查

00000000  12 34 56 78                                       |.4Vx|
00000004

答案 1 :(得分:0)

我用下面的代码解决了它。

fo = open(str(sys.argv[1]), 'ab')
f1 = binascii.a2b_hex(sys.argv[2])
fo.write(f1)
f2 = binascii.a2b_hex(sys.argv[3])
fo.write(f2)
fo.close()

感谢您的回复。