主力ノートのHDDがなんかおかしな感じになっているので、PCの引っ越し中 これを機会にファイルの整理をする。 あるフォルダー以下にだぶっているファイルがあれば提示するプログラム #!/usr/bin/python import os,filecmp dir='.' filehash={} for root,dirs,files in os.walk(dir): print 'root %s' % root for file in files: file=root+os.sep+file filehash[file]=os.path.getsize(file) print file,os.path.getsize(file) for k,kv in filehash.items(): for j,jv in filehash.items(): if kv!=jv or k==j: continue if filecmp.cmp(k,j): print 'k=%s' % k print 'j=%s' % j 削除は、これの結果を元に、別スクリプトでやった方が安全かもね。 os.walkってのは、勝手にディレクトリー階層を降りてファイルを提示してくれるpythonの便利標準ライブラリ。 for root,dirs,files in os.walk(basedir): って書くと、rootにはそのフォルダーが、dirsにはそのフォルダーにあるディレクトリーの配列がfileにはファイル配列が、入ってくれる。 後はそれを色々と操作するだけでよい。 |