finding/replacing a long binary pattern in a .bin file

Stephen Thorne stephen.thorne at gmail.com
Thu Jan 13 01:51:46 EST 2005


On 12 Jan 2005 22:36:54 -0800, yaipa <yaipa at yahoo.com> wrote:
> What would be the common sense way of finding a binary pattern in a
> .bin file, say some 200 bytes, and replacing it with an updated pattern
> of the same length at the same offset?
> 
> Also, the pattern can occur on any byte boundary in the file, so
> chunking through the code at 16 bytes a frame maybe a problem.  The
> file itself isn't so large, maybe 32 kbytes is all and the need for
> speed is not so great, but the need for accuracy in the
> search/replacement is very important.

Okay, given the requirements.

f = file('mybinfile')
contents = f.read().replace(oldbinstring, newbinstring)
f.close()
f = file('mybinfile','w')
f.write(contents)
f.close()

Will do it, and do it accurately. But it will also read the entire
file into memory.

Stephen.



More information about the Python-list mailing list