> for l in > open('/root/Desktop/project/chatlog_20060819_110043.xml.txt'): > > l=l.replace("Document", "DOC") > fh.close() > > But it does not replace Document with Doc in the txt file
In addition to closing the file handle for the loop *within* the loop, you're changing "l" (side note: a bad choice of names, as in most fonts, it's difficult to visually discern from the number "1"), but you're not writing it back out any place. One would do something like outfile = open('out.txt', 'w') infile = open(filename) for line in infile: outfile.write(line.replace("Document", "DOC")) outfile.close() infile.close() You could even let garbage collection take care of the file handle for you: outfile = open('out.txt', 'w') for line in open(filename): outfile.write(line.replace("Document", "DOC")) outfile.close() If needed, you can then move the 'out.txt' overtop of the original file. Or, you could just use sed 's/Document/DOC/g' $FILENAME > out.txt or with an accepting version, do it in-place with sed -i 's/Document/DOC/g' $FILENAME if you have sed available on your system. Oh...and it doesn't look like your code is using regexps for anything, despite the subject-line of your email :) I suspect they'll come in later for the "replace the tags" portion you mentioned, but that ain't in the code. -tkc -- http://mail.python.org/mailman/listinfo/python-list