2016-08-13 6 views
0

私はpythonを使ってチェックして更新できるファイルシステムを持っています。私の解決策はos.walkでしたが、私のニーズとファイルシステムに問題がありました。これは、ディレクトリがレイアウトされている方法です。Python os.walkはパスの代わりに特定の名前のディレクトリをスキップします

Root 
dir1 
    subdir 
     1 
     2 
     3... 
    file1 
    file2 
dir2 
    subdir 
     1 
     2 
     3... 
    file1 
    file2 
... 

主なディレクトリが故に、異なる名称「DIR1」と「DIR2」が、それらの内部のディレクトリは互いに同じ名前を持ち、異なるたくさんのファイルが含まれているとしていディレクトリ。サブディレクトリは不要なコンピューティングを追加するので、os.walkから除外したいディレクトリです。

パスではなくディレクトリの名前に基づいて、os.walkからディレクトリを除外する方法はありますか?何か他のことをする必要がありますか?

答えて

6

os.walkあなたが提供するディレクトリのリストを変更することができます。もしあなたが何かを取ったら、それはそれらのディレクトリに降りません。

for dirpath, dirnames, filenames in os.walk("/root/path"): 
    if "subdir" in dirnames: 
     dirnames.remove("subdir") 
    # process the files here 

(あなたがスキャンのボトムアップスタイルを使用している場合、これは動作しないことに注意してください。)

See the documentation

関連する問題