Я пишу сценарий, который спускается в дерево каталогов (используя os.walk ()), а затем посещает каждый файл, соответствующий определенному расширению файла. Однако, поскольку некоторые из деревьев каталогов, в которых будет использоваться мой инструмент, также содержат подкаталоги, которые, в свою очередь, содержат МНОГО бесполезного (для целей этого сценария) материала, я решил добавить опцию для пользователя, чтобы указать список каталогов для исключения из обхода.
Это достаточно просто с os.walk (). В конце концов, я должен решить, хочу ли я на самом деле посетить соответствующие файлы / каталоги, созданные os.walk (), или просто пропустить их. Проблема в том, что если у меня есть, например, дерево каталогов, подобное этому:
root--
|
--- dirA
|
--- dirB
|
--- uselessStuff --
|
--- moreJunk
|
--- yetMoreJunk
и я хочу исключить uselessStuff и все его дочерние элементы, os.walk () все равно попадет во все (потенциально тысячи) подкаталоги uselessStuff , что, разумеется, сильно замедляет работу. В идеальном мире я мог бы сказать os.walk (), чтобы он даже не потрудился дать потомство детям uselessStuff , но, насколько мне известно, нет способа сделать это (есть?).
У кого-нибудь есть идея? Может быть, есть сторонняя библиотека, которая предоставляет что-то подобное?
dirs[:] =?