Expresion regular con glob
Alberto Garcia
trebol.a en gmail.com
Mie Mar 1 13:57:41 CET 2006
El Miércoles 01 Marzo 2006 03:23, Chema Cortés escribió:
Mil gracias...
Y para que me "pille" (:D) tanto mayusculas como minusculas¿?
Estoy obligado a pasar .jpg y .JPG ¿?
Sorry, salta a la vista que soy novato ....
> El Martes, 28 de Febrero de 2006 23:32, Alberto Garcia escribió:
> > Estoy asignando a una variable todos los archivos JPG, PNG y GIF de un
> > directorio.
> > la asigno tal que asi :
> > origenes.extend(glob.glob(origen+'/*[.jpg|.png|.gif]'))
> >
> > No hay manera, si meto en la carpeta "origen" un bmp, tambien me lo coge!
> > ¿Donde he metido la pata?
>
> No pasas bien la expresión de búsqueda. Los corchetes sólo sirven para dar
> rangos de caracteres. Tu expresión equivale a: origen+'/*[.jpgnif|]', razón
> por la que te coge..(perdón :-S)..pilla los bmp por acabar su nombre en p
>
> Para solucionarlo, podrías realizar tres búsquedas, una por cada tipo de
> fichero.
>
> > Por otro lado, cual sería la manera mas "elegante" de hacer esa
> > asignación de forma recursiva, es decir, que asigne a "origenes" todos
> > los JPG, PNG y GIF en la carpeta indicada y sus hijas....
>
> La solución elegante sería con os.walk(), algo tal que así:
>
> import os
> import fnmatch
>
> origenes=[]
> for root,dirs,files in os.walk(origen):
> for pat in ('*.jpg','*.png','*.gif'):
> origenes+=[os.path.join(root,n) for n in fnmatch.filter(files,pat)]
> _______________________________________________
> Python-es mailing list
> Python-es en aditel.org
> http://listas.aditel.org/listinfo/python-es
Más información sobre la lista de distribución Python-es