175

(os.walk() を使用して) ディレクトリ ツリーに降りて、特定のファイル拡張子に一致する各ファイルにアクセスするスクリプトを作成しています。ただし、私のツールが使用されるディレクトリ ツリーの一部には、 (このスクリプトの目的では) 役に立たないものがたくさん含まれているサブディレクトリも含まれているため、ユーザーが指定するオプションを追加すると考えまし。トラバーサルから除外するディレクトリのリスト。

これは os.walk() を使えば簡単です。結局のところ、 os.walk() によって生成されたそれぞれのファイル/ディレクトリに実際にアクセスするか、単にスキップするかを決定するのは私次第です。問題は、たとえば、次のようなディレクトリ ツリーがある場合です。

root--
     |
     --- dirA
     |
     --- dirB
     |
     --- uselessStuff --
                       |
                       --- moreJunk
                       |
                       --- yetMoreJunk

uselessStuffとそのすべての子を除外したいのですが、 os.walk() は引き続きuselessStuffのすべての (潜在的に数千の) サブディレクトリに降りてきます。理想的な世界では、 os.walk() にuselessStuffの子をこれ以上生成しないように指示できますが、私の知る限り、それを行う方法はありません (ありますか?)。

誰にもアイデアはありますか?たぶん、そのようなものを提供するサードパーティのライブラリがありますか?

4

2 に答える 2