2

ファイルとフォルダーの非常に大きなディレクトリがあります。現在、ディレクトリ全体をスキャンして JPG を探し、それらをリストに保存しています。これは、ディレクトリのサイズが原因で非常に遅くなります。これを行うためのより高速で効率的な方法はありますか? おそらくすべてをスキャンせずに?

私のディレクトリは次のようになります。

/library/Modified/2000/[FolderName]/Images.JPG
/library/Modified/2001/[FolderName]/Images.JPG
/library/Modified/2002/[FolderName]/Images.JPG
/library/Modified/2003/[FolderName]/Images.JPG
/library/Modified/2004/[FolderName]/Images.JPG
...
/library/Modified/2012/FolderName/Images.JPG

ありがとう

4

3 に答える 3

2

システム プログラマ向けのジェネレータ トリックを参照してください。しかし具体的には、gen-findの例を参照してください。これは、ファイル構造のレイアウトについて多くの想定をせずに、得ようとしているのと同じくらい効率的です。

于 2012-06-05T13:09:46.060 に答える
1

アプリケーションがディレクトリを変更する唯一のディレクトリであり、ディレクトリ名/構造を制御でき、質問で説明されている操作を複数回実行する必要があると仮定します。

予測可能な順序でアクセスできるように、すべてのファイルの名前を一度変更します。たとえば、すべてのファイルに 1 から N までの数値名 (N はディレクトリ内のファイルの数) を付け、各ディレクトリの N を保持する特別なファイル ".count" を用意します。次に、ランダムジェネレーターによって生成された名前で直接アクセスします。

于 2012-06-05T13:13:07.487 に答える
1

どこで速度が低下するかはわかりませんが、ディレクトリとファイルをスキャンするには、最初にバッチ ファイルを使用してディレクトリ/ファイルをテキスト ファイルにダンプし、次に python でファイルを読み取らせた方がはるかに高速であることがわかりました。これは、7 台のサーバーと何千ものディレクトリを持つサーバー システムでうまく機能しました。もちろん、Python はバッチ ファイルを実行できます。

于 2012-06-05T13:28:08.230 に答える