Python 3. Brauchen, um eine Datei zu schreiben, überprüfen, um zu sehen, ob eine Zeile vorhanden ist, dann schreiben Sie erneut, die Datei

Ich in letzter Zeit wieder eine Tonne Bilder von einem Freund tot Festplatte und ich beschlossen, wollte ein Programm schreiben in python:

Gehen durch alle Dateien

Überprüfen Sie Ihre MD5Sum

Überprüfen, um zu sehen, ob die MD5Sum gibt es in einer text-Datei

Wenn es funktioniert, lass es mich wissen mit "DUPLIKAT GEFUNDEN WURDE"

Wenn es nicht, fügen Sie die MD5Sum der text-Datei.

Das ultimative Ziel sein, so löschen Sie alle Duplikate. Allerdings, wenn ich diesen code ausführen, bekomme ich die folgende:

Traceback (most recent call last):
  File "C:\Users\godofgrunts\Documents\hasher.py", line 16, in <module>
    for line in myfile:
io.UnsupportedOperation: not readable

Mache ich das komplett falsch oder bin ich einfach nur Missverständnisse etwas?

import hashlib
import os
import re

rootDir = 'H:\\recovered'
hasher = hashlib.md5()


with open('md5sums.txt', 'w') as myfile:
        for dirName, subdirList, fileList in os.walk(rootDir):            
                for fname in fileList:
                        with open((os.path.join(dirName, fname)), 'rb') as pic:
                                buf = pic.read()
                                hasher.update(buf)
                        md5 = str(hasher.hexdigest())
                        for line in myfile:
                                if re.search("\b{0}\b".format(md5),line):
                                        print("DUPLICATE HAS BEEN FOUND")
                                else:
                                        myfile.write(md5 +'\n')
  • Über Ihren Einzug, vier Räume vorzuziehen ist 8. Wäre viel einfacher für uns alle zu Lesen, wie gut. Siehe PEP8.
InformationsquelleAutor godofgrunts | 2013-09-26
Schreibe einen Kommentar