Estou escrevendo um script que desce em uma árvore de diretórios (usando os.walk ()) e depois visita cada arquivo que corresponde a uma determinada extensão de arquivo. No entanto, como algumas das árvores de diretórios em que minha ferramenta será usada também contêm subdiretórios que, por sua vez, contêm MUITO material inútil (para o propósito deste script), achei que adicionaria uma opção para o usuário especificar uma lista de diretórios a serem excluídos da passagem.
Isso é bastante fácil com os.walk (). Afinal, cabe a mim decidir se realmente quero visitar os respectivos arquivos / diretórios gerados por os.walk () ou simplesmente ignorá-los. O problema é que, se eu tenho, por exemplo, uma árvore de diretórios como esta:
root--
|
--- dirA
|
--- dirB
|
--- uselessStuff --
|
--- moreJunk
|
--- yetMoreJunk
e eu quero excluir uselessStuff e todos os seus filhos, os.walk () ainda descerá para todos os (potencialmente milhares de) subdiretórios do uselessStuff , que, escusado será dizer, diminui bastante as coisas. Em um mundo ideal, eu poderia dizer ao os.walk () que nem se desse ao trabalho de gerar mais filhos de coisas inúteis , mas, pelo que sei , não há como fazer isso (existe?).
Alguém tem alguma ideia? Talvez haja uma biblioteca de terceiros que forneça algo assim?
dirs[:] =
?