再帰的なディレクトリ探索に Python の os.walk() を利用する
Python では、ディレクトリを再帰的に走査することは、ファイル管理などのタスクにとって重要なタスクですそしてディレクトリ操作。多用途の os.walk() 関数は、この目的のための堅牢なソリューションを提供します。
ディレクトリを移動するとき、多くの場合、ファイルとディレクトリを区別することが重要です。ただし、os.walk() 関数はデータを異なる方法で表示します。これに対処するには、追加のツールを活用する必要があります。
これを例として、次のコード スニペットを考えてみましょう。
import os import fnmatch for root, dir, files in os.walk("."): print(root) print("") for items in fnmatch.filter(files, "*"): print("..." + items) print("")
このコードを実行すると、現在のディレクトリの構造が出力され、その後に次のコードが出力されます。各ディレクトリ内のファイル。ただし、この構造は、ファイルとディレクトリが明確に区別される目的の形式と一致していません。
目的の出力を実現するには、わずかに変更された os.walk() 実装を使用する別のアプローチが必要です。
import os for root, dirs, files in os.walk("."): path = root.split(os.sep) print((len(path) - 1) * '---', os.path.basename(root)) for file in files: print(len(path) * '---', file)
この修正されたコードは、ルート ディレクトリのパスを個々のコンポーネント (パス) に分割し、コンポーネントの数をカウントして現在のディレクトリの深さを決定します。この深さは、ディレクトリ名とその中のファイルを適切に視覚化するためにインデントするために使用されます。したがって、最終出力には、ディレクトリとファイルが明確に分離された階層表現が反映されます。
以上がPython の os.walk() 関数を使用する場合、ファイルとディレクトリを効果的に区別するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。