La idea es indexar todos y cada uno de tus archivos en un simple archivo, para después cuando quieras buscar un archivo, simplemente buscas, es simplemente mera curiosidad este algoritmo y es para probar como se recorrería una estructura de árbol.
La forma más adecuada o sencilla es por medio de recursividad que si digo la verdad hasta hace 2 o 3 meses no tenia ni idea.
Hacerlo de forma iterativa es poco menos que cometer un suicidio, pero por supuesto es posible.
Yo en el algoritmo he ideado una combinación mixta de ambas, para recorrer hacia abajo he usado recursividad y para recorrer en lateral he usado la forma iterativa.
Solo tiene un pequeño problema:
Que es debido seguramente a la capacidad de la lista al poner todos los archivos porque tiene un límite y no se me ocurre una solución
.
La forma más adecuada o sencilla es por medio de recursividad que si digo la verdad hasta hace 2 o 3 meses no tenia ni idea.
Hacerlo de forma iterativa es poco menos que cometer un suicidio, pero por supuesto es posible.
Yo en el algoritmo he ideado una combinación mixta de ambas, para recorrer hacia abajo he usado recursividad y para recorrer en lateral he usado la forma iterativa.
Código (python) [Seleccionar]
# -*- coding: cp1252 -*-
import os
directorio = os.getcwd()
lista = directorio
f = open('listado.txt', 'w')
directorio = directorio.split("\\")
directorio = directorio[0]
#print directorio
os.chdir(directorio + "\\")
def listado():
i = 0
archivos = os.listdir(directorio)
while i <= len(archivos):
if os.path.isfile(directorio+"\\"+archivos[i]) == True:
f.write(directorio+"\\"+archivos[i]+"\n")
else:
subdirectorios(directorio+"\\"+archivos[i])
i +=1
def subdirectorios(direc):
j=0
archivos=os.listdir(direc)
while j < len(archivos):
if os.path.isfile(direc+"\\"+archivos[j]) == True:
f.write(direc+"\\"+archivos[j]+"\n")
else:
subdirectorios(direc+"\\"+archivos[j])
j+=1
listado()
f.close()
Solo tiene un pequeño problema:
Citar File "C:\Documents and Settings\Shrick\Mis documentos\Prog\Python\araña.py", line 35, in subdirectorios
subdirectorios(direc+"\\"+archivos[j])
File "C:\Documents and Settings\Shrick\Mis documentos\Prog\Python\araña.py", line 30, in subdirectorios
archivos=os.listdir(direc)
TypeError: listdir() argument 1 must be (buffer overflow), not str
Que es debido seguramente a la capacidad de la lista al poner todos los archivos porque tiene un límite y no se me ocurre una solución
