おはようございます。私は、JPEG画像からEXIFデータを収集し、Python v2.xを使用してMySQLデータベースに格納するコードを開発しようとしています。障害は、JPEGがいくつかのサブディレクトリとルートのさらなるサブディレクトリに散在しているという事実にありますroot> subroot> subsubroot1に200個のJPEGが格納され、さらにroot> subroot> subroot2に100個のJPEGが格納されます。すべてのイメージが特定されると、イメージがスキャンされ、それぞれのEXIFデータが抽出されてからMySQLテーブルに追加されます。再帰的な検索とMySqlの比較
現時点で私は計画段階にありますが、再帰的検索を実行するには最も効率的で無作法な方法は何でしょうか?私は、ルートディレクトリをスキャンし、新しい識別されたサブディレクトリをリストに追加し、すべてのディレクトリのリストを表示するまで、リスト内のすべてのサブディレクトリパスをさらにサブディレクトリにスキャンします。 IMHOと少し繰り返しているので、これは不器用なようですが、この機能を実行するよりOOPの方法があるかもしれないと思います。
同様に、私は自分のMySQLテーブルに新しい情報を追加しようとしているだけなので、エントリがすでに存在するかどうかを確認する最も効率的な方法は何でしょうか?テーブル内のファイル名とJPEGファイル名の両方がMD5ハッシュ値になります。私は、コードの始めにテーブルをスキャンし、すべてのファイル名をセットに入れることを検討していました。新しいJPEGをスキャンする前に、エントリがすでにセットに存在する場合は、EXIFを抽出して次の写真。しかしこれは効率的な方法ですか、新しい画像に遭遇したときにMySQLテーブルをスキャンする方が良いでしょうか?私は、setメソッドがもっとも効率的かもしれないと予想しますが、テーブルには最終的に何千万ものエントリが潜在的に含まれる可能性があるため、これらのエントリのファイル名をセット(揮発性メモリ)に追加するのがベストアイデアではないかもしれません。
ありがとうございました。