Python: replace strings Jun 21, 2013 # -*- coding: utf8 -*- #!/usr/bin/env python import argparse import os def replacestring(old, new, path): f = open(path, "r") content = f.read() f.close() f = open(path, "w") content = content.replace(old, new) f.write(content) f.close() parser = argparse.ArgumentParser(description='Find a string and replace it in files') parser.add_argument('-R','-r', action='store_true', \\ help='walk all paths recursely', dest='R') parser.add_argument('path', metavar='path', nargs=1, \\ help='path affected by the replacement') parser.add_argument('oldstring', metavar='oldstring', nargs=1, \\ help='oldstring for replacement') parser.add_argument('newstring', metavar='newstring', nargs=1, \\ help='newstring for replacement') args = parser.parse_args() path = args.path[0] old = args.oldstring[0] new = args.newstring[0] if not os.path.exists(path): print "Path not found/not accessible" exit() if os.path.isfile(path): replacestring(old, new, path) else: for dirpath, dirnames, filenames in os.walk(path): for file in filenames: replacestring(old, new, os.path.join(dirpath, file)) if not args.R: break