Dateien die nicht in der liste sind löschen problem

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.
Antworten
Analyze™
User
Beiträge: 1
Registriert: Dienstag 24. September 2013, 11:46

Hallo miteinander
ich habe ein Problem wie folgt.
Meine Verzeichnissstruktur:
test/C.txt
test/C++.txt
test/Python.txt
test/Perl.txt

nun habe ich ein python script geschrieben was prüft was in dem verzeichniss "test" drin ist und alles löscht was nicht in der liste im script steht.

Code: Alles auswählen

import os
languages = ["C.txt", "C++.txt", "Perl.txt", "Python.txt"] 
objects = os.listdir('test')
objects.sort()
for objectname in objects:
	if objectname not in languages:
		os.remove('test/' + objectname)

		
mein problem nun wenn im verzeichniss "test" ein weiterer unter ordner ist schmeißt er mir einen fehler.
Bild
jetzt weis ich nichtmehr weiter er soll keinen error wiedergeben sondern einfach den ordner löschen.
Da es im verzeichniss "test" keinen unterordner geben darf.

Bitte seid nicht zu streng ich bin nicht der beste in sachen Python :) freue mich über jede hilfestellung
Sirius3
User
Beiträge: 17753
Registriert: Sonntag 21. Oktober 2012, 17:20

@Analyze™: os.remove entfernt Verweise auf Dateien. Such Dir einfach eine Funktion, die Verzeichnisse löscht. (shutil)
Dami123
User
Beiträge: 225
Registriert: Samstag 23. Februar 2013, 13:01

Probier erst die Datei mit "os.remove()" zu löschen und dann den Odner mit "os.rmdir()".
oder wie Sirius3 bereits gesagt hat, schau dir "shutil.rmtree()" an.
BlackJack

@Dami123: Ich denke `os.rmdir()` braucht man gar nicht erst probieren. `shutil.rmtree()` löscht auch leere Verzeichnisse ganz prima und der Code wird einfacher.
Antworten