[eside-ghost] reinventando la rueda en python
Alfredo Beaumont
alfredo.beaumont en gmail.com
Jue Sep 7 15:17:24 CEST 2006
Osteguna 07 Iraila 2006 13:58(e)an, altern(e)k idatzi zuen:
> aupa
>
> supongo que estoy reinventando la rueda, a ver si alguno me ayuda.
> Necesito copiar un directorio con archivos y subdirectorios desde python
> pero tengo que filtrar unos directorios y archivos con determinadas
> extensiones.
>
> En principio me servia copiarlo todo a lo bestia con
> shutil.copytree(origen, destino)
>
> pero como el directorio tiene un monton de historias que no me interesan
> y que suman 13 megas pues me he puesto a la obra. He mirado en internet
> a ver si alguien se habia currado una funcion para hacer algo parecido
> (estoy seguro de que si) pero no he encontrado nada. He llegado hasta aqui:
>
> import os
>
> def recursiveCopy(src, to, folBlackList, extBlackList):
> # exclude: Demo, doc, Tk, WGL, scripts, *.pyo, *.pyc
> for i in os.listdir(src) :
> if os.path.isfile(i) : # files
> # aqui checkear si la extension esta en la extBlackList
> shutil.copy(os.path.join(src,i), to) # file, folder
> elif os.path.isdir(i) :
> # aqui checkear si esta en la folBlackList
> newsrc = os.path.join(src, i) # going one level down
> newto = os.path.join(to, i)
> os.mkdir(newto) # create if didnt exist
> recursivecopy(newsrc, newto, folBlackList, extBlackList
>
>
> recursiveCopy(/blah/blah/OpenGL, /tralara/dist, ['Demo', 'doc', 'Tk',
> 'WGL', 'scripts'], ['.pyo', '.pyc'])
>
>
> No me chuta bien y ya se me han fundido un par de plomos en la olla en
> el proceso con tanta recursion, igual alguno habeis hecho algo similar
> alguna vez ?
¿ Podrías indicar que fallo te da ?
Así a bote pronto veo algunos:
* recursiveCopy no tiene el paréntesis de cierre en la llamada recursiva
* los dos primeros parámetros de recursiveCopy tienen que ir entrecomillados
* al hacer el chequeo de fichero o directorio te estás olvidando del path:
os.path.isfile(os.path.join(src,i), y demás
Saludos
>
> gracias
>
> enrike
>
> _______________________________________________
> eside-ghost mailing list
> eside-ghost a bildua deusto.es
> https://listas.deusto.es/mailman/listinfo/eside-ghost
--
Alfredo Beaumont Sainz
http://www.alfredobeaumont.org/blog.cgi
Más información sobre la lista de distribución eside-ghost