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