2017-06-11 16 views
-2

私は、特定のファイルが存在するかどうかを調べるために、20,000を超えるファイルを含む可能性のあるフォルダを介していくつかの検索を行う必要があるプログラムを作成しています。 os.path.isfileはディレクトリ内のすべてのファイルを繰り返し処理するのですか、より効率的な方法を使用していますか?そして、これらの20,000のファイルを異なるサブディレクトリに分割すると、isfileが行う必要のある検索が高速化されますか?os.path.fileはどのように実装されていますか?

注:私はpythonの3

+0

[公式のドキュメント](https://docs.python.org/2/library/os.path.html#os.path.isfile) –

+1

を参照する必要があります。メソッドの実装方法に関する情報はありません。 – Sam

+0

ドキュメントをお読みください。一つのこととして、 'isfile'は単一のパスで動作します。再帰的にファイルシステムに降下するようなことはしません。 – wmorrell

答えて

1

を使用しています内部的にはstat system callを使用して、ファイルシステムやOSが提供するスピードで動作します。

巨大なディレクトリを複数のサブディレクトリに分割することは、OSとファイルシステムの実装に依存します。しかし、通常はyesです。ディレクトリ内のファイルが少ないほど良いでしょう。

関連する問題