Skript, mis otsib üles duplikaatfailid - Python: Difference between revisions

From ICO wiki
Jump to navigationJump to search
No edit summary
No edit summary
Line 1: Line 1:
Midagi sellist
<source lang = "python">
<source lang = "python">
#!/usr/bin/python
#!/usr/bin/python
# -*- coding: utf
# -*- coding: utf-8 -*-
#Skript leidmaks duplikaatfailid
#Chris Sinihelm, AK41, 2010
import hashlib
import hashlib
import os  
import os
def remove_duplicates(dir):
def sha(filename):
  unique = []
    d = hashlib.sha512()
  for filename in os.listdir(dir)
    try:
      if os.path.isfile(filename):
        d.update(open(filename).read())
         filehash = md5.md5(file(filename).read()).hexdigest()
    except Exception,e:
         if filehash not in unique: unique.append(filehash)
        print e
         else: os.remove(filename)
    else:
        return d.hexdigest()
s={}
path = raw_input ("Sisesta koht, kus kohast duplikaatfaile otsitakse: ")
print "Sisestasid ", path
for r,d,f in os.walk(path):
    for files in f:
         filename=os.path.join(r,files)
        digest=sha(filename)
         if not s.has_key(digest):
            s[digest]=filename
         else:
            print "Järgnevad on duplikaat failid: %s <==> %s " %( filename, s[digest])
</source>
</source>

Revision as of 16:27, 29 January 2011

#!/usr/bin/python
# -*- coding: utf-8 -*-
#Skript leidmaks duplikaatfailid
#Chris Sinihelm, AK41, 2010
import hashlib
import os
def sha(filename):
    d = hashlib.sha512()
    try:
        d.update(open(filename).read())
    except Exception,e:
        print e
    else:
        return d.hexdigest()
s={}
path = raw_input ("Sisesta koht, kus kohast duplikaatfaile otsitakse: ")
print "Sisestasid ", path
for r,d,f in os.walk(path):
    for files in f:
        filename=os.path.join(r,files)
        digest=sha(filename)
        if not s.has_key(digest):
            s[digest]=filename
        else:
            print "Järgnevad on duplikaat failid: %s <==> %s " %( filename, s[digest])