Python - 将文件写入给定的偏移量

时间:2016-04-18 10:51:42

标签: python python-2.7 file binaryfiles

我有二进制文件名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                           ......

任何想法?

2 个答案:

答案 0 :(得分:2)

了解文档中的开放模式。您想要的模式很可能是"r+b",而不是"w" - 它不会截断文件。

答案 1 :(得分:1)

您正在使用w模式截断文件,而不是以二进制模式打开文件(如果您使用的是Windows)。将模式从w更改为r+b

file = open('binary_dump', "r+b")

有关详细信息,请参阅Input and Output上的Python文档:

  

'w'仅用于写入(将删除具有相同名称的现有文件)[...]。 'r +'打开文件进行读写。