Path: csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!us.feeder.erje.net!feeder.erje.net!eu.feeder.erje.net!newsfeed.xs4all.nl!newsfeed4.news.xs4all.nl!xs4all!newsgate.cistron.nl!newsgate.news.xs4all.nl!post.news.xs4all.nl!not-for-mail Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.003 X-Spam-Evidence: '*H*': 0.99; '*S*': 0.00; 'binary': 0.07; 'subject:file': 0.07; 'string': 0.09; 'chunk': 0.09; 'subject:string': 0.09; "(it's": 0.16; 'adjacent': 0.16; 'chunks': 0.16; 'from:addr:mrabarnett.plus.com': 0.16; 'from:addr:python': 0.16; 'from:name:mrab': 0.16; 'message-id:@mrabarnett.plus.com': 0.16; 'received:192.168.1.4': 0.16; 'received:84.93': 0.16; 'received:84.93.230': 0.16; 'string).': 0.16; 'wrote:': 0.18; 'file,': 0.19; 'split': 0.19; '(the': 0.22; 'header:User-Agent:1': 0.23; 'replace': 0.24; 'appreciated': 0.26; 'least': 0.26; 'header :In-Reply-To:1': 0.27; 'character': 0.29; 'code': 0.31; 'file': 0.32; 'another': 0.32; 'could': 0.34; 'received:84': 0.35; 'should': 0.36; 'clear': 0.37; 'to:addr:python-list': 0.38; 'sure': 0.39; 'to:addr:python.org': 0.39; 'how': 0.40; 'read': 0.60; 'length': 0.61; "you're": 0.61; 'between': 0.67; 'characters,': 0.84; 'subject:find': 0.84 X-CM-Score: 0.00 X-CNFS-Analysis: v=2.1 cv=JLW1sq6b c=1 sm=1 tr=0 a=0nF1XD0wxitMEM03M9B4ZQ==:117 a=0nF1XD0wxitMEM03M9B4ZQ==:17 a=0Bzu9jTXAAAA:8 a=sASEtNAQL0YA:10 a=T-aYJMAq8cUA:10 a=ihvODaAuJD4A:10 a=IkcTkHD0fZMA:10 a=EBOSESyhAAAA:8 a=khqM3p5akEFCjoUcKl4A:9 a=QEXdDO2ut3YA:10 X-AUTH: mrabarnett:2500 Date: Tue, 04 Mar 2014 13:08:50 +0000 From: MRAB User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64; rv:24.0) Gecko/20100101 Thunderbird/24.3.0 MIME-Version: 1.0 To: python-list@python.org Subject: Re: find and replace string in binary file References: <01951a7d-2ab3-4203-a9c5-2f79017a980d@googlegroups.com> In-Reply-To: <01951a7d-2ab3-4203-a9c5-2f79017a980d@googlegroups.com> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Newsgroups: comp.lang.python Message-ID: Lines: 17 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1393938532 news.xs4all.nl 2872 [2001:888:2000:d::a6]:43149 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:67671 On 2014-03-04 12:27, 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. > > Any help appreciated > Read it in chunks and search each chunk (the chunks should be at least as long as the search string). You should note that the string you're looking for could be split across 2 chunks, so when writing the code make sure that you include some overlap between adjacent chunks (it's best if the overlap is at least N-1 characters, where N is the length of the search string).