私は、ファイルを比較し、その重複をPythonで表示するプログラムを作成しようとしています。誰もがこれに関連する良い機能や方法を知っていますか?私は失われています...2つのビデオファイルを比較するPythonメソッドまたはクラス?
答えて
私は最初にファイル名とファイルサイズの比較を開始します。一致が見つかった場合は、ファイルのバイトをループして比較することができますが、これはおそらくかなり集中しています。
私はPythonでこれを行うことができるライブラリを知りません。
あなただけの正確な重複を探している場合は、両方のMD5 hashを行うと、それらが一致するかどうかを確認:
import hashlib
file1 = open('file1.avi', 'r').read()
file2 = open('file2.avi', 'r').read()
if hashlib.sha512(file1).hexdigest() == hashlib.sha512(file2).hexdigest():
print 'They are the same'
else:
print 'They are different'
ない場合は、私がOpenCV's Python Bindingsを試してみたし、彼らはフレーム毎に一致しているかどうかを確認。
MD5が壊れていることに注意してください。一般的なファイルの一意性を比較するのには十分ですが、攻撃者は「偽のマッチ」を作成する可能性があります。 –
私はあなたがビデオファイルを比較して衝突を起こすのではないかと疑います。しかし、あなたが主張するなら、私は少し良いものを使用します;) – Blender
os.walkを使用してファイルツリーを調べます。
ファイルごとに、ファイルサイズとシグネチャ(最初の16バイト?最初の512バイトのハッシュ?フルファイルのハッシュ?)によってインデックス付けされた絶対パス+ファイル名を格納します。
この作業が完了すると、最終的にファイルサイズが決まります。各サイズについて、ファイル署名のdict;各署名について、その署名を共有するすべてのファイルのリスト。ファイルの署名がフルファイルに基づいていない場合、または重大な衝突の可能性がある場合は、衝突するファイルだけを詳細に比較できます。
- 1. 2つのJavaクラスの比較
- 2. Objective-Cの2つのメソッドを比較する際の問題
- 3. Pythonで2つの浮動小数点を比較します
- 4. 2つの別々のJavaScriptオブジェクトのクラスを比較する
- 5. 等しいメソッド:2つのオブジェクトを比較する
- 6. 2つのNSStringsを比較します
- 7. 2つのUIImagesを比較します
- 8. 2つのエンティティを比較します
- 9. 2つのJObjectsまたはJArrayを比較します
- 10. Pythonで2つのファイルのmd5ハッシュを比較する
- 11. 2つのSVNリビジョンを比較して比較する4
- 12. Python - 2つの2D配列を行単位で比較する
- 13. 2つのアルゴリズムの比較
- 14. 2つのクラスタイプの比較
- 15. 2つのタイムスタンプの比較
- 16. 2つのビットマップソースの比較
- 17. 2つの画像を比較する
- 18. 2つのCGRectを比較する
- 19. 2つのデータローを比較する
- 20. 2つのLinqオブジェクトを比較する
- 21. Subsonic 2つのオブジェクトを比較する
- 22. 2つの値を比較する
- 23. 2つのパターンオブジェクトを比較するJava
- 24. 2つのglob式を比較する
- 25. 関数をPythonのバインドされたメソッドと比較する3
- 26. 異なるクラスにある2つの配列を比較する方法は?
- 27. LINQでの2つのクラスを比較 - 「不一致」
- 28. Pythonで2つのリストを比較し、一致した値のインデックスを返す
- 29. Pythonで2つのファイルの修正日を比較するには?
- 30. 2つのフォルダの比較 - テンプレートと実際の比較
イメージまたは生のバイトを比較しますか? (すなわち、本質的に同じビデオではあるが、異なる解像度/品質/それ以外のものが一致するかどうかの2つのビデオファイルがあるかどうか) –
これまでに実装が簡単なこと。 – DCIndieDev