Ich versuche, Dateien in einem Verzeichnis durch und finde Duplikate und lösche sie. Ich habe 29 000 Dateien im Verzeichnis, so dass eine rohe Gewalt mehr als einen Tag dauern wird.Python Loop von der aktuellen Datei
ich Dateinamen haben, die wie folgt sind:
„some_file_name“ „some-file-name“
So ein Name Unterstrichen hat und der andere hat Striche und manchmal sind sie zwei oder drei Punkte ein Teil.
Wie kann ich meine innere Schleife an der Position der äußeren Schleife im Verzeichnis beginnen lassen und nur die nächsten 10 überprüfen lassen?
Hier mein Brute-Force ist Code:
import glob, os
os.chdir("C:/Dir/dir")
for file in glob.glob("*"):
temp = file
temp = temp.replace("-", " ")
temp = temp.replace("_", " ")
#How do I start this loop where file is currently at and continue for the next 10 files
for file2 in glob.glob("*"):
temp2 = file2
temp2 = temp2.replace("-", " ")
temp2 = temp2.replace("_", " ")
if temp == temp2:
os.remove(file2)
Haben Sie Duplikate von Inhalten oder von ähnlichen finden wollen Name alleine? – Tomalak
Anstatt zweimal zu loopen (temp1 und temp2) haben Sie versucht, eine Datenstruktur (einen Satz oder eine Liste) zu verwenden, um zu verfolgen, welche Dateinamen Sie bereits besucht haben? Auf diese Weise müssen Sie die einzelnen Dateien nur einmal durchlaufen. – pills