我想使用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)
答案 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()
感谢您的回复。