"Tommy Kaas" <tommy.k...@kaasogmulvad.dk> wrote


I'm especially interested to know how I do more than just one search-replace
without having to repeat the whole step below.
fin = open("dirtyfile.txt")
fout = open("cleanfile.txt", "w")
for line in fin:
   fout.write(line.replace('## ', '#'))
fin.close()
fout.close()

Can be simplified to:

with open("cleanfile.txt", "w") as fout:
    for line in open("dirtyfile.txt"):
          fout.write(line.replace('## ', '#'))

To do multiple replaces simply expand the inner block


    for line in open("dirtyfile.txt"):
          line = line.replace(....)   #first
          line = line.replace(....)   #second etc
          fout.write(line)

Or if you have a lot of them:

replacePatterns = [('##','#'),('!!!','!!'),....]

    for line in open("dirtyfile.txt"):
           for old,new in repace_patterns:
                line = line.replace(old,new)
           fout.write(line)

HTH,


--
Alan Gauld
Author of the Learn to Program web site
http://www.alan-g.me.uk/


_______________________________________________
Tutor maillist  -  Tutor@python.org
To unsubscribe or change subscription options:
http://mail.python.org/mailman/listinfo/tutor

Reply via email to