Seite 1 von 1

Dateien die nicht in der liste sind löschen problem

Verfasst: Dienstag 24. September 2013, 12:01
von Analyze™
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

Re: Dateien die nicht in der liste sind löschen problem

Verfasst: Dienstag 24. September 2013, 12:12
von Sirius3
@Analyze™: os.remove entfernt Verweise auf Dateien. Such Dir einfach eine Funktion, die Verzeichnisse löscht. (shutil)

Re: Dateien die nicht in der liste sind löschen problem

Verfasst: Dienstag 24. September 2013, 16:09
von Dami123
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.

Re: Dateien die nicht in der liste sind löschen problem

Verfasst: Dienstag 24. September 2013, 16:23
von 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.