Thanks Emile. Unfortunately I have to use python 2.6 for this
On Wednesday, 5 March 2014 00:13:00 UTC, emile wrote: > On 03/04/2014 02:44 PM, Chris Angelico wrote: > > > On Wed, Mar 5, 2014 at 12:18 AM, Peter Otten <__pete...@web.de> wrote: > > >> loial wrote: > > >> > > >>> How do I read a binary file, find/identify a character string and replace > > >>> it with another character string and write out to another file? > > >>> > > >>> Its the finding of the string in a binary file that I am not clear on. > > >> > > >> That's not possible. You have to convert either binary to string or string > > >> to binary before you can replace. Whatever you choose, you have to know the > > >> encoding of the file. > > > > > > If it's actually a binary file (as in, an executable, or an image, or > > > something), then the *file* won't have an encoding, so you'll need to > > > know the encoding of the particular string you want and encode your > > > string to bytes. > > > > > > On 2.7 it's as easy as it sounds without having to think much about > > encodings and such. I find it mostly just works. > > > > emile@paj39:~$ which python > > /usr/bin/python > > emile@paj39:~$ python > > Python 2.7.3 (default, Sep 26 2013, 16:38:10) > > [GCC 4.7.2] on linux2 > > Type "help", "copyright", "credits" or "license" for more information. > > >>> image = open('/usr/bin/python','rb').read() > > >>> image.find("""Type "help", "copyright", "credits" """) > > 1491592 > > >>> image = image[:1491592]+"Echo"+image[1491592+4:] > > >>> open('/home/emile/pyecho','wb').write(image) > > >>> > > emile@paj39:~$ chmod a+x /home/emile/pyecho > > emile@paj39:~$ /home/emile/pyecho > > Python 2.7.3 (default, Sep 26 2013, 16:38:10) > > [GCC 4.7.2] on linux2 > > Echo "help", "copyright", "credits" or "license" for more information. > > > > YMMV, > > > > Emile -- https://mail.python.org/mailman/listinfo/python-list