Pythonでディレクトリやファイルを操作する際、os.walk
とglob
はよく使われる関数です。しかし、これらの関数はどのように使い分けるべきなのでしょうか。この記事では、それぞれの関数の特性と、パフォーマンスについて解説します。
os.walkとglobの基本
os.walk
とglob
は、Pythonでディレクトリやファイルを操作するための関数です。os.walk
は、指定したディレクトリ以下のすべてのファイルやディレクトリを再帰的に探索します。一方、glob
は、指定したパターンにマッチするファイルやディレクトリを探索します。
パフォーマンスの比較
Stack Overflowの投稿によると、os.walk
とglob
のパフォーマンスは次のようになります。
os.listdir
: 0.7268秒, 1326786ファイルが見つかりましたos.walk
: 3.6592秒, 1326787ファイルが見つかりましたglob.glob
: 2.0133秒, 1326786ファイルが見つかりました
この結果から、os.listdir
が最も高速であり、glob.glob
はos.walk
よりも高速であることがわかります。
まとめ
os.walk
とglob
は、それぞれ異なる用途で使用されます。os.walk
は、ディレクトリの全体的な探索に適しています。一方、glob
は、特定のパターンにマッチするファイルを探す際に便利です。また、パフォーマンスを重視する場合、os.listdir
やglob.glob
の使用を検討すると良いでしょう。