Procesamiento de plantillas

procesamiento de textos
Instrucciones

Partiendo de la receta de Raymond Hettinger que he visto comentada en PythonHispano, la he mejorado para hacerla un poco más flexible para que se puedan usar caracteres alfanuméricos según Unicode, y ya de paso la he cambiado para que haga de paso las sustituciones en la plantilla.

import re

def convert_template(template, subst=None, opener='[', closer=']'):
    opener = re.escape(opener)
    closer = re.escape(closer)
    pattern = re.compile(opener + '([- \w]+)' + closer, re.UNICODE)
    
    if subst:
        repl=lambda m: subst.get(m.group(1),m.group(0))
    else:
        repl=r'%(\1)s'
    
    return re.sub(pattern, repl, template)

print convert_template('Mi dirección es [Dirección Postal].',{'Dirección Postal':'Percebe Rue, 13'})
Cŕeditos
Basada en la receta de Raymond Hettinger