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"
No hay comentarios:
Publicar un comentario