我有二进制文件名binary_dump,看起来像这样
xxd binary_dump
0000000: 0000 4865 6c6c 6f20 776f 726c 6421 0000 ..Hello world!..
0000010: 726c 6421 726c 6421 rld!rld!
我的目标是使用给定的偏移量来表示/00/00/00/00
而不是字符串当前在给定的偏移量中
我正在使用python,这是我的代码
file = open('binary_dump', "w")
file.seek(2)
data= "\00\00\00\00"
file.write(data)
file.close()
我得到的是:
xxd binary_dump
0000000: 0000 0000 0000 ......
任何想法?
答案 0 :(得分:2)
了解文档中的开放模式。您想要的模式很可能是"r+b"
,而不是"w"
- 它不会截断文件。
答案 1 :(得分:1)
您正在使用w
模式截断文件,而不是以二进制模式打开文件(如果您使用的是Windows)。将模式从w
更改为r+b
:
file = open('binary_dump', "r+b")
有关详细信息,请参阅Input and Output上的Python文档:
'w'仅用于写入(将删除具有相同名称的现有文件)[...]。 'r +'打开文件进行读写。