Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
ich suche nach einer einfachen Möglichkeit Verzeichnisse zu löschen in denen unter Umständen auch etwas drin steht (evtl sogar weitere Verzeichnisse mit weiterem Inhalt). Als Lösung ist mir bis jetzt nur eingefallen in jedem Verzeichniss alle Dateien aufzulisten, diese zu löschen, dann das Verzeichnis zu löschen....usw.
Diese Lösung erscheint mir aber viel zu umständlich
vielleicht ist noch zu erwähnen das ich den Befehl rmdir() und auch den Befehl removedirs() probiert habe, aber beide schmeißen eine Exception wenn der Ornder nicht leer ist.
also im Prinzip brauch ich nur etwas wieremovedirs() das die Dateien trotzdem löscht...gibt es sowas???
import os
def del_dir(path):
for file in os.listdir(path):
file_or_dir = os.path.join(path,file)
if os.path.isdir(file_or_dir):
del_dir(file_or_dir)
else:
os.remove(file_or_dir)
os.rmdir(path)
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
HarryH hat geschrieben:Unter Windows geht folgende Möglichkeit:
[snip]
Dabei wird der Windows-CMD-Befehl abgegeben und ausgeführt.
Warum sowas machen wenn man auch Pythons eigene Funktionen nutzen kann, die zudem noch unter anderen OSen laufen? (Ja, unter Linux und Co hätte man rm -r nehmen können, aber warum?)
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
import os
def del_dir(path):
for fil in os.listdir(path):
file_or_dir = os.path.join(path,fil)
if os.path.isdir(file_or_dir):
del_dir(file_or_dir)
else:
os.remove(file_or_dir)
os.rmdir(path)
So funktionierts (und seit wann nennen wir eine Variable file?
vielen, vielen Dank für eure Hilfe. Obwohl ich sagen muss das HarryH's Lösung einen gewissen Reiz auf mich ausübt (ich sag nur 'Quick n Dirty' ), hab ich doch die Lösung von Leonidas übernommen.
Funktioniert tadellos, natürlich erst mit der Korrektur von mawe!
Also nochmal vielen Dank und viel Spaß noch
Grüße
Stifferle
import os
def del_dir(path):
for fil in os.listdir(path):
file_or_dir = os.path.join(path,fil)
if os.path.isdir(file_or_dir):
del_dir(file_or_dir)
else:
os.remove(file_or_dir)
os.rmdir(path)
Ich habe einen Verzeichnis, und in ihr sind weitere Verzeichnisse und Daten enthalten. Wie kann ich alle Unterverzeichnisse und Dateien löschen bzw. wie müsste ich den Code von Leonidas erweitern?