Esta vez quería escapar muchos txt, para así transformarlos a html; para ello necesito transformar los carácteres prohibidos en html a su forma escapada, y luego los saltos de línea transformarlos a "<br />". Bueno, no quité los saltos de línea, simplemente le agregué el tag. Y puse un mensaje de advertencia para prevenir ejecutarlo sin querer, ya que los efectos pueden ser nefastos.
Además, no quería escapar los &, ya que habían algunos txt ya medio escapados, pero si no es su caso borran la línea marcada y ya está.
Para ejecutarlo, simplemente van a la carpeta donde están todos los txt y ejecutan el script, luego de la pregunta, transformará todos los txt a html y les cambiará la extensión.
Acá el script y también en Pastebin. Compártelo y cópialo tanto como quieras.
#!/usr/bin/python
# -*- coding: utf-8 -*-
#Por Erick Francisco Merino Menares @vincegeratorix
import os
import re
import sys
import cgi
import codecs
print "esto cambiara los saltos de linea por br, sólo si está seguro proceda"
entrada = raw_input("si/no: ")
if entrada != "si":
print "decidió salir"
sys.exit(0)
txts = ([f for f in os.listdir(os.getcwd()) if re.match(".+(\\.(?i)([tT][xX][tT]))$", f)])
for i in xrange(len(txts)):
f=codecs.open(txts[i], encoding='utf-8', mode="r")
string = f.read()
f.close()
reemplazado = cgi.escape(unicode(string)).encode('ascii', 'xmlcharrefreplace')
reemplazado = unicode(reemplazado.replace("\n", "aqui va el tag br, que el maldito script no me lo escapa, vean el link de pastebin\n<br />"))
#Esta línea de abajo lo pueden quitar, es para "antiescapar" los ampersand
reemplazado = unicode(reemplazado.replace("&", "&"))
archivo=codecs.open(txts[i], encoding='utf-8', mode="w")
archivo.write(reemplazado)
archivo.close()
nombre = str(txts[i])
nombreHtml = nombre.replace(".txt", ".html")
os.system("mv " + nombre + " " + nombreHtml)
print "terminó con exito"