Ich schreibe ein Python 2.7-Skript, um die neuesten (2) Dateien in einer Liste von all_current_files
zu vergleichen, die alle Dateinamen in einem Verzeichnis z. myimage.jpg, myimage1.jpg, etc.
Durchlaufen Sie Dateien im Verzeichnis, und vergleichen Sie die letzten 2 Dateien für Duplikate
Zum Beispiel, wenn meine Liste aussieht:
1 myfile1.jpg
2 myfile2.jpg
3 myfile3.jpg
4 myfile4.jpg
5 myfile5.jpg
6 myfile6.jpg
als list = ['myfile1.jpg','myfile2']
definiert etc ..
wenn die Unterschiede zwischen dem Hashes der Datei 6
und 5
war , dann ist die Skript würde nichts tun, wenn es weniger als wäre, würde es löschen.
Ich habe Probleme zu formulieren, wie man die letzten 2 Elemente in der Liste rekursiv vergleicht (beginnend am Ende), bis alle Listenelemente verglichen sind - kann jemand helfen?
Ich habe derzeit:
def purgeDups():
print "purging duplicate images every hour...\n\n"
all_current_files = os.listdir('filllll...in...image...dir...here')
for file in all_current_files:
#check latest file... and compare to second latest file based on timestamp of file, recurse until no more files.
#begin comparing files...if difference between latest all_current_files and second latest is less than 5, delete
latest = imagehash.average_hash(Image.open(<<latestfilefrom2linesabove>>))
secLatest = imagehash.average_hash(Image.open(<<secondlatestfrom2linesabove>>))
compare = latest-secLatest
if int(compare) < 5:
os.remove(<<latestfilefrom2linesabove>>)
os.remove(<<secondlatestfilefrom2linesabove>>)
Dank viel.
Wie ermitteln Sie die neuesten Dateien? – PYA
Das ist was ich versuche herauszufinden. Wie bekomme ich die letzten 2 Artikel in einer interativen Natur? Zum Beispiel vergleiche 5 + 6, dann 5 + 4, dann 4 + 3, dann 3 + 2 usw. – John
@John Warum benutzt du nicht einfach eine verschachtelte Schleife und vergleichst alle möglichen Paare? –