Ich würde dies als Kommentar zu Thomas Watnedals Antwort hinzufügen , kann es aber noch nicht.
Ein kleines Problem (das Windows nicht betrifft) ist, dass nur nach Dateien oder Verzeichnissen gesucht wird. Bei Unix-ähnlichen Systemen, in denen möglicherweise symbolische Verknüpfungen vorhanden sind, muss die Zeile geändert werden:
if os.path.isfile(fullpath):
zu
if os.path.isfile(fullpath) or os.path.islink(fullpath):
um auch Links zu entfernen.
Für mich die letzte Zeile if match: removeall(match.group(1))
in ändern
if match:
print "Removing " + match.group(1)
removeall(match.group(1))
Es war auch nützlich, um anzuzeigen, was entfernt wird.
Je nach Anwendungsfall kann der ?[\?ID]
Teil des regulären Ausdrucks besser sein ?[\?I]
, da D
auch gelöschte Dateien entfernt werden, die unter Versionskontrolle standen. Ich möchte dies verwenden, um einen sauberen, eingecheckten Ordner zu erstellen, sodass sich keine Dateien in einem D
Status befinden sollten .