Я пишу сценарій, який спускається в дерево каталогів (використовуючи os.walk ()), а потім відвідую кожен файл, який відповідає певному розширенню файлу. Однак, оскільки деякі дерева директорій, на яких буде використовуватися мій інструмент, також містять підкаталоги, які, у свою чергу, містять a БАГАТО непотрібних (для цілей даного сценарію) речі, я вирішив додати можливість для користувача , щоб вказати список каталогів, які потрібно виключити з обходу.
Це досить просто за допомогою os.walk (). Зрештою, я вирішую, чи дійсно я хочу відвідати відповідні файли / файли, видані os.walk (), або просто пропустити їх. Проблема полягає в тому, що якщо у мене є, наприклад, дерево каталогів таким:
root--
|
--- dirA
|
--- dirB
|
--- uselessStuff --
|
--- moreJunk
|
--- yetMoreJunk
і я хочу виключити безполезнийStuff та всіх його дітей, os.walk () все одно зійде у всі (потенційно тисячі) підкаталогів безполезнихStuff , що, не треба говорити, значно уповільнює справи. В ідеальному світі, я можу сказати os.walk (), що навіть не турбує народжувати більше дітей непотрібнихStuff , але, наскільки мені відомо, немає способу зробити це (чи є?).
Хтось має ідею? Можливо, є стороння бібліотека, яка надає щось подібне?
dirs[:] =?