나는이 잠시 다시에 대한 스크립트를 썼습니다. 처음에는 모든 파일을 검색하고 사전에 크기를 표시합니다. 당신은 endup로 :
images[some_size] = ['x/a.jpg', 'b/f.jpg', 'n/q.jpg']
images[some_other_size] = ['q/b.jpg']
그런 다음, 사전에 1 개 이상의 요소가있어 각각의 키 (이미지 크기), 나는 파일의 일부 고정 금액을 읽고 해시를 할 것입니다. 다음과 같이하십시오 :
possible_dupes = [size for size in images if len(images[size]) > 1]
for size in possible_dupes:
hashes = defaultdict(list)
for fname in images[size]:
m = md5.new()
hashes[ m.update(file(fname,'rb').read(10000)).digest() ] = fname
for k in hashes:
if len(hashes[k]) <= 1: continue
for fname in hashes[k][1:]:
os.remove(fname)
이것은 내 머리 꼭대기에서 벗어났습니다. 코드를 테스트하지 않았지만 아이디어를 얻었습니다.
정말 같은 이미지 (바이너리)입니까, 아니면 같은 이름의 이미지입니까? –
"복제"란 무엇을 의미합니까? 같은 이름? 같은 수표?정확한 바이트 수? –
정말 많은 정보가 필요합니다. 이미 제기 된 질문 외에도 이러한 질문이 어떻게 저장됩니까? 다른 파일과 함께 이미지 파일을 포함하는 디렉토리로 저장되어 있습니까? 데이터베이스에 저장되어 있습니까? 그들은 다른 방법으로 저장되어 있습니까? 시스템은 어떻게 생겼습니까? "이미지 없음"제품 모두 이미지에 대해 동일한 파일을 사용합니까, 아니면 각 제품에 대해 복제 된 동일한 이미지의 사본입니까? –