ReplacementScript
Jump to navigation
Jump to search
This script can be used to do the following for all files and files in subdirs:
sp_curve_moveto(c, p);
to
c->moveto(p);
For more explanation, ask Johan Engelen
# -*- coding: utf-8 -*- # Python import os, sys, re mydir= 'C:/inkscape/src' functionname='move_endpoints' rvalue='(?:[\w]+[->]*)+' patn=re.compile('sp_curve_' + functionname + '[\s]*\([\s]*(' + rvalue + ')[\s]*[,]*[\s]*(.*)') replacemt=r'''\1->'''+functionname+'('+r'''\2'''
def replaceStringInFile(filePath): "replaces all string by a regex substitution" print filePath veranderd = False tempName=filePath+'~~~' input = open(filePath) s=input.read() while True: m = patn.search(s) if m: print '----' print m.group(0) print re.sub(patn, replacemt, m.group(0), 1) print '----' ok = raw_input('y/n?') if ok in ('y'): s = re.sub(patn, replacemt, s, 1) veranderd = True; else: break else: break if veranderd: output = open(tempName,'w') output.write(s) output.close() input.close() os.remove(filePath) os.rename(tempName,filePath)
def myfun(dummy, dirr, filess): for child in filess: # if child == '20040428_xelso_ranmi.html': if '.cpp' == os.path.splitext(child)[1] and os.path.isfile(dirr+'/'+child): replaceStringInFile(dirr+'/'+child) print child os.path.walk(mydir, myfun, 3)