How to overwrite some bytes in the middle of a file with Python? How to overwrite some bytes in the middle of a file with Python? python python

How to overwrite some bytes in the middle of a file with Python?


Try this:

fh = open("filename.ext", "r+b")fh.seek(offset)fh.write(bytes)fh.close()


According to this python page you can type file.seek to seek to a particualar offset. You can then write whatever you want.

To avoid truncating the file, you can open it with "a+" then seek to the right offset.


Very inefficient, but I don't know any other way right now, that doesn't overwrite the bytes in the middle (as Ben Blanks one does):

a=file('/tmp/test123','r+')s=a.read()a.seek(0)a.write(s[:3]+'xxx'+s[3:])a.close()

will write 'xxx' at offset 3: 123456789 --> 123xxx456789