Pankaj <[EMAIL PROTECTED]> wrote: >search for : for ( i = 0; i < 10; i++) >Replace with: for( printf( "10" ), i =0; i < 10; i++) >Where 10 is the line no.
>f = open( "./1.c", "r") >fNew = open( "./1_new.c", "w") >for l in f: > print l > lineno = lineno + 1 > strToFind = "for\((.*)\;(.*)" [etc.] >search for : for ( i = 0; i < 10; i++) >Replace with: for( printf( "10" ), i =0; i < 10; i++) Ah, the dangers of thinking of all string manipulation as requiring regexps, thanks to their ubiquity in Perl. Observe: >search for : for ( i = 0; i < 10; i++) >Replace with: for( printf( "10" ), i = 0; i < 10; i++) All you need is: strToFind = "for (" strToReplace = 'for (printf( "+str(lineno)+'" ),' # Note the use of '' to avoid the need to escape the "s fNew.write(l.replace(strToFind, strToReplace) (OK, maybe you do need the regexp if you've got any "for (;" loops, or inconsitencies as to whether it's "for(" or "for (". But if a simple string replace will do the job, use it.) -- \S -- [EMAIL PROTECTED] -- http://www.chaos.org.uk/~sion/ ___ | "Frankly I have no feelings towards penguins one way or the other" \X/ | -- Arthur C. Clarke her nu becomeþ se bera eadward ofdun hlæddre heafdes bæce bump bump bump
-- http://mail.python.org/mailman/listinfo/python-list