> -----Oprindelig meddelelse----- > Fra: tutor-bounces+tommy.kaas=kaasogmulvad...@python.org > [mailto:tutor-bounces+tommy.kaas=kaasogmulvad...@python.org] På vegne > af Alan Gauld > Sendt: 6. juni 2011 11:51 > Til: tutor@python.org > Emne: Re: [Tutor] search-replace > > > "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) >
Excellent! Thanks. tommy _______________________________________________ Tutor maillist - Tutor@python.org To unsubscribe or change subscription options: http://mail.python.org/mailman/listinfo/tutor