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.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Öffnen Sie Ihre Datei im Schreibmodus (
'w'
) In Ihremwith
- Anweisung. Öffnen Sie beide schreiben und Lesen-Modus:rw
stattw+
?Den richtigen Modus "r+", nicht "w+".
http://docs.python.org/3.3/tutorial/inputoutput.html#reading-and-writing-files