ReplacementScript
Jump to navigation
Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
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)