Estoy escribiendo un script que desciende a un árbol de directorios (usando os.walk ()) y luego visita cada archivo que coincide con una determinada extensión de archivo. Sin embargo, dado que algunos de los árboles de directorios en los que se usará mi herramienta también contienen subdirectorios que a su vez contienen MUCHAS cosas inútiles (para el propósito de este script), pensé que agregaría una opción para que el usuario especifique una lista de directorios para excluir del recorrido.
Esto es bastante fácil con os.walk (). Después de todo, depende de mí decidir si realmente quiero visitar los archivos / directorios respectivos producidos por os.walk () o simplemente omitirlos. El problema es que si tengo, por ejemplo, un árbol de directorios como este:
root--
|
--- dirA
|
--- dirB
|
--- uselessStuff --
|
--- moreJunk
|
--- yetMoreJunk
y quiero excluir a uselessStuff y todos sus elementos secundarios, os.walk () seguirá descendiendo a todos los (potencialmente miles de) subdirectorios de uselessStuff , lo que, no hace falta decirlo, ralentiza mucho las cosas. En un mundo ideal, podría decirle a os.walk () que ni siquiera se moleste en dar más hijos de inútil Stuff , pero que yo sepa, no hay forma de hacerlo (¿existe?).
¿Alguien tiene alguna idea? ¿Tal vez hay una biblioteca de terceros que proporciona algo así?
dirs[:] =?