Re: Ayuda con expresión regular

César García celord en gmail.com
Lun Dic 22 21:33:25 CET 2008


Genial chema muchas gracias... implementado!

2008/12/18 Chema Cortes <py en ch3m4.org>

> El Thursday 18 December 2008 19:12:09 César García escribió:
> > Hola lista tengo el siguiente problema:
> >
> > Tengo un archivo "plantilla" de la siguiente manera:
> >
> > addTemplate:
> > --------------------------------------------
> > NOMBRE
> > APELLIDO
> > MAIL
> > --------------------------------------------
> >
> > Y tengo un script en python haciendo lo siguiente:
> >
> > uid='usuario1'
> > lastname='ap_usuario1'
> > mail=usuario1 en server.com
> >
> > now = strftime("%d-%m-%y-%H_%M_%S", localtime())
> > filename = str(now)
> > FILE = open ('files/addTemplate','r')
> > plantilla = FILE.read()
> > new = open('files/'+filename,'w')
> > new.write( re.sub('UID', uid, plantilla))
> > new.write( re.sub('APELLIDO', lastname, plantilla))
> > new.write( re.sub('MAIL', mail, plantilla))
> > new.close()
> >
> >
> > El problema es que el archivo resultante queda asi:
> >
> > Cesar
> > APELLIDO
> > MAIL
> > NOMBRE
> > GArcia Sanchez
> > MAIL
> > NOMBRE
> > APELLIDO
> > cgarcia
> >
> > Parece que no hace substitución, si no que agrega
>
> No, en realidad hace lo que le pides: escribir tres veces la misma
> plantilla,
> cambiando cada vez una cosa.
>
> re.sub() devuelve la cadena cambiada, pero deja intacta la original.
> Supongo
> que sabrás arreglarlo.
>
> Pero no necesitas usar expresiones regulares para algo tan simple. Usa el
> método .replace(), incluso como secuencia:
>
> plantilla.replace('UID', uid).replace('APELLIDO',
> lastname).replace('MAIL',mail)
>
> Otra sugerencia: suele ser más cómodo usar diccionarios para las cadenas a
> reemplazar
>
> subs={'UID':uid, 'APELLIDO':lastname, 'MAIL':mail}
>
> for k,v in subs.items():
>  plantilla.replace(k,v)
>
> _______________________________________________
> Lista de correo Python-es
> http://listas.aditel.org/listinfo/python-es
> FAQ: http://listas.aditel.org/faqpyes
>



-- 
http://celord.blogspot.com/
_______________________________________________
Lista de correo Python-es 
http://listas.aditel.org/listinfo/python-es
FAQ: http://listas.aditel.org/faqpyes





Más información sobre la lista de distribución Python-es