[eside-ghost] reinventando la rueda en python
altern
altern2 en gmail.com
Jue Sep 7 13:58:35 CEST 2006
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 ?
gracias
enrike
Más información sobre la lista de distribución eside-ghost