こんばんは。JPEG 画像から EXIF データを収集し、Python v2.x を使用して MySQL データベースに保存するコードの開発を検討していますたとえば、ルート > サブルート > サブルート 1 に 200 個の JPEG が格納され、ルート > サブルート > サブルート 2 にさらに 100 個の JPEG が格納されます。すべての画像が識別されると、MySQL テーブルに追加される前にそれらがスキャンされ、それぞれの EXIF データが抽象化されます。
現時点では計画段階ですが、再帰検索を実行する最も効率的でPython的な方法は何でしょうか? ルート ディレクトリをスキャンし、新しく特定されたサブディレクトリをリストに追加してから、すべてのディレクトリの合計リストが得られるまで、リスト内のすべてのサブディレクトリ パスをスキャンしてさらにサブディレクトリを探します。私見ですが、これは不器用な方法であり、少し反復的であるように思われるため、この機能を実行するOOPの方法がもっとあると思います。
同様に、MySQL テーブルに新しい情報を追加したいだけなので、エントリが既に存在するかどうかを確認する最も効率的な方法は何でしょうか? テーブル内のファイル名と JPEG ファイル名の両方がその MD5 ハッシュ値になります。コードの先頭でテーブルをスキャンし、すべてのファイル名をセットに配置することを検討していたので、新しい JPEG をスキャンする前に、エントリがセットに既に存在する場合、EXIF を抽出して次に進む必要はありません。次の写真。しかし、これは効率的な方法ですか、それとも新しい画像が検出されたときに MySQL テーブルをスキャンする方がよいでしょうか? set メソッドが最も効率的であると予想されますが、テーブルには最終的に数千万のエントリが含まれる可能性があるため、これらのエントリのファイル名をセット (揮発性メモリ) に追加することは最善の方法ではない可能性があります。
ありがとうございます。