os.walk muy lento, ¿alguna forma de optimizarlo?
estoy usandoos.walk
para construir un mapa de un almacén de datos (este mapa se usa más adelante en la herramienta que estoy construyendo)
Este es el código que uso actualmente:
def find_children(tickstore):
children = []
dir_list = os.walk(tickstore)
for i in dir_list:
children.append(i[0])
return children
He hecho un análisis al respecto:
dir_list = os.walk(tickstore)
corre instantáneamente, si no hago nada condir_list
entonces esta función se completa al instante.
Está iterando sobredir_list
eso lleva mucho tiempo, incluso si noappend
cualquier cosa, solo iterar sobre eso es lo que lleva el tiempo.
Tickstore
es un gran almacén de datos, con ~ 10,000 directorios.
Actualmente se tarda aproximadamente 35 minutos en completar esta función.
¿Hay alguna forma de acelerarlo?
He mirado alternativas aos.walk
pero ninguno de ellos parecía proporcionar una gran ventaja en términos de velocidad.