Sto scrivendo uno script che scende in un albero di directory (usando os.walk ()) e quindi visita ogni file corrispondente a una determinata estensione. Tuttavia, poiché alcuni degli alberi di directory su cui verrà utilizzato il mio strumento contengono anche sottodirectory che a loro volta contengono MOLTE cose inutili (ai fini di questo script), ho pensato che avrei aggiunto un'opzione per l'utente di specificare un elenco di directory da escludere dall'attraversamento.
Questo è abbastanza facile con os.walk (). Dopotutto, spetta a me decidere se voglio effettivamente visitare i rispettivi file / dir prodotti da os.walk () o semplicemente saltarli. Il problema è che se ho, ad esempio, un albero di directory come questo:
root--
|
--- dirA
|
--- dirB
|
--- uselessStuff --
|
--- moreJunk
|
--- yetMoreJunk
e voglio escludere inutilmente Stuff e tutti i suoi figli, os.walk () scenderà comunque in tutte le (potenzialmente migliaia di) sottodirectory di inutile Stuff , che, inutile dirlo, rallenta molto le cose. In un mondo ideale, potrei dire a os.walk () di non preoccuparsi nemmeno di cedere altri figli di oggetti inutili , ma per quanto ne sappia non c'è modo di farlo (vero?).
Qualcuno ha un'idea? Forse c'è una biblioteca di terze parti che fornisce qualcosa del genere?
dirs[:] =?