Problema recursividad

Pepe Lloret pepell en ctv.es
Mar Ene 6 12:57:39 CET 2004


Saludos a todo el mundo. Ya que acabo de llegar a esta lista de correo.

Estoy haciendo mis primeros pinitos con este lenguaje de programación y
me he encontrado con un problema al recorrer un arbol de directorios.

El código que estoy gastando es este (resumido):


def procesar_carpeta(path):
   "Procesa la carpeta y genera el album de fotos de la misma"

   if isdir(path):
      lista_directorio=listdir(path)
      chdir(path)
      print lista_directorio
      for fichero in lista_directorio[:]:

         if isdir(fichero):
            procesar_carpeta(fichero)

         if isfile(fichero):
            print 'Fichero : ',fichero

   else:
      print 'No se puede generar el album de ',path


La "traza" del programa que obtengo es la siguiente, para ver la
variable lista_directorio:

['carpeta1', 'carpeta2', 'dscf0788.jpg', 'dscf0789.jpg']
['dscn1349.jpg', 'dscn1350.jpg']
Fichero :  dscn1349.jpg
Fichero :  dscn1350.jpg


Parece que cuando entra en carpeta1 la variable lista_directorio se
sobreesbribe con el contenido de esa carpeta y al acabar esa rama de la
recursividad no recupera el valor que tenía antes de la llamada, con lo
que ya no "veo" el resto del arbol de directorios y ficheros.

¿Qué estoy haciendo mal? ¿O es que no se puede hacer la recursividad de
esta manera? He estado revisando el tutorial y algunas páginas por la
web y no parece que este haciendo nada raro, ya que aunque estoy
sobreescribiendo la variable lista_directorio en cada llamada, esta
variable, en teoría es local a cada una de esas llamadas, ¿no?

Muchas gracias anticipadas por la respuesta.

Un saludo,

  Pepe

-- 
Pepe Lloret
mailto:pepell en ctv.es
http://www.valux.org

In a world without frontiers, who needs Gates and Win?
En un mundo sin fronteras.... ¿Quién necesita Puertas y Ventanas?

------------ próxima parte ------------
_______________________________________________
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