重複ファイルチェッカー
フォルダの中の重複ファイルをチェックしたいなーと思って、ちょろっと書いてみた。
# -*- coding: cp932 -*- # md5checker.py import sys, os, re, md5 path = sys.argv[1] pat = re.compile(".(" + "|".join(sys.argv[2:]) + ")$") d = os.listdir(path) files = [os.path.join(path, f) for f in d if pat.search(f)] md5hashes = [md5.new(open(f, "rb").read()).hexdigest() for f in files] dic = {} for f, m in zip(files, md5hashes): if dic.has_key(m): print "%sと%sは同じファイルです。\n(md5:%s)" % (dic[m], f, m) else: dic[m] = f
使い方はこんな感じ↓
md5checker.py [フォルダへのパス] [拡張子] [拡張子] ...
結果はこんな感じで出力されます。
kenkiti@X32M8J ~/wk$ python md5checker.py . txt py cpp knapsack.pyとtest.txtは同じファイルです。 (md5:644d42064ba5f7b4f775f5d989c1d67a)