[解決済み] os.walkでディレクトリを除外する。
質問
ディレクトリツリーに降りていき(os.walk()を使用)、特定のファイル拡張子に一致する各ファイルを訪問するスクリプトを書いています。しかし、私のツールが使用されるディレクトリツリーのいくつかは、サブディレクトリを含んでおり、そのサブディレクトリには ロット このスクリプトの目的には)役に立たないものがあるので、探索から除外するディレクトリのリストをユーザーが指定できるオプションを追加しようと考えた。
これは os.walk() を使えば簡単です。結局のところ、os.walk()によって得られたそれぞれのファイル/ディレクトリを実際に訪れたいのか、それとも単にスキップしたいのかを決めるのは私次第なのです。問題は、例えば次のようなディレクトリツリーがあった場合です。
root--
|
--- dirA
|
--- dirB
|
--- uselessStuff --
|
--- moreJunk
|
--- yetMoreJunk
を除外したい。 無用なもの とその子ディレクトリの全てに対して、os.walk() は、まだ、すべての(潜在的には数千の)サブディレクトリに降下します。 無用なもの これは言うまでもなく、物事を大きく遅らせることになります。理想的な世界では、os.walk() に、これ以上 uselessStuff しかし、私の知る限りでは、そのような方法はありません(あるのでしょうか)。
どなたか思い当たる方はいらっしゃいますか?もしかしたら、そのようなものを提供するサードパーティのライブラリがあるのかもしれませんね?
どのように解決するのですか?
修正方法
dirs
インプレース
が訪れた (後続の) ファイルとディレクトリを刈り込みます。
os.walk
:
# exclude = set(['New folder', 'Windows', 'Desktop'])
for root, dirs, files in os.walk(top, topdown=True):
dirs[:] = [d for d in dirs if d not in exclude]
help(os.walk)より。
topdown が true の場合、呼び出し側は dirnames リストをインプレースで変更することができます。 (例えば、del や slice の代入で)、walk は再帰的にのみ に残っているサブディレクトリを使用することができます。 を切り捨てる。
関連
-
PicgoのイメージベッドツールをPythonで実装する
-
Python入門 openを使ったファイルの読み書きの方法
-
[解決済み】numpyの配列連結。"ValueError:すべての入力配列は同じ次元数でなければならない"
-
[解決済み】pygame.error: ビデオシステムが初期化されていない
-
[解決済み】socket.error: [Errno 48] アドレスはすでに使用中です。
-
[解決済み】Pythonでgoogle APIのJSONコードを読み込むとエラーになる件
-
[解決済み】SyntaxError: デフォルト以外の引数がデフォルトの引数に続く
-
[解決済み】Python - "ValueError: not enough values to unpack (expected 2, got 1)" の修正方法 [閉店].
-
[解決済み】ValueError: xとyは同じサイズでなければならない
-
[解決済み】Pythonでディレクトリを再帰的に走査するためにos.walk()を使用する。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ピローによる動的キャプチャ認識のためのPythonサンプルコード
-
Python 可視化 big_screen ライブラリ サンプル 詳細
-
Pythonの学習とデータマイニングのために知っておくべきターミナルコマンドのトップ10
-
風力制御におけるKS原理を深く理解するためのpythonアルゴリズム
-
Python Pillow Image.save jpg画像圧縮問題
-
[解決済み】TypeError: unhashable type: 'numpy.ndarray'.
-
[解決済み】ImportError: sklearn.cross_validation という名前のモジュールがない。
-
[解決済み】Pythonでgoogle APIのJSONコードを読み込むとエラーになる件
-
[解決済み】Flaskのテンプレートが見つからない【重複あり
-
[解決済み] os.walkの理解は正しいですか?