私は異なるディレクトリツリー構造を持つ2つの異なるディレクトリを持っています。ディレクトリAにはディレクトリBにあるファイルがあり、その逆もあります。そのファイルが同じサイズであることを確認して、どのコピーが正しいかを確認します(別の場合は、大きなものを選択します)。これらのファイルは〜1〜2 GBです。さらに、これらのディレクトリには複数のファイルタイプがあり、特定の拡張子を持つファイルと比較したいだけです。Pythonのディレクトリ間で重複名付きファイルのファイルサイズを再帰的に比較する
類似ファイルのファイルサイズを比較し、一致するか一致しないファイルのリストを出力するにはどうすればよいですか?
感謝:)
UPDATE:漠然とした質問に対して申し訳ありませんが、私は、スタックオーバーフロー新たなんです。私はこれ以上いくつか作業し、それを理解することができました。解決策は次のとおりです。このテストでは、file1.txtとfile2.txtの両方を含むtest1 /とtest2 /の2つのdirがあります。 file1.txtは2つのディレクトリ間で同じで、file2.txtは異なっています。
d1_contents = set(os.path.basename(x) for x in glob.glob("/Users/raycharles/Desktop/test1/*.txt"))
#print d1_contents
d2_contents = set(os.path.basename(x) for x in glob.glob("/Users/raycharles/Desktop/test2/*.txt"))
#print d2_contents
common = list(d1_contents & d2_contents)
common_files = [ f
for f in common
if os.path.isfile(os.path.join('/Users/raycharles/Desktop/test1/', f))]
print 'Common files:', common_files
# Compare the directories
match, mismatch, errors = filecmp.cmpfiles('/Users/raycharles/Desktop/test1/',
'/Users/raycharles/Desktop/test2/',
common_files, shallow=True)
match = sorted(match)
mismatch = sorted(mismatch)
errors = sorted(errors)
print 'Match:', match
print ""
print 'Mismatch:', mismatch
print ""
print 'Errors:', errors
print ""
そして、これが出力されます。
Common files: ['file1.txt', 'file2.txt']
Match: ['file1.txt']
Mismatch: ['file2.txt']
Errors: []
あなたのためにコードを記述していただきたいようです。多くのユーザーは、苦痛を伴うコーダーのコードを作成したいと考えていますが、通常、ポスターがすでに自分で問題を解決しようとしたときにのみ役立ちます。この努力を示す良い方法は、これまでに書いたコード、サンプル入力(もしあれば)、予想される出力、実際に得られる出力(コンソール出力、トレースバックなど)を含めることです。あなたが提供する詳細があれば、受け取る可能性の高い回答が増えます。 [FAQ](http://stackoverflow.com/tour)と[How to Ask](http://stackoverflow.com/help/how-to-ask)を参照してください。 –