Seite 1 von 1
Durch Directories gehen und überprüfen, ob der Ordner leer ist
Verfasst: Mittwoch 24. Juni 2020, 11:00
von Python123.py
Hallo,
in einer Aufgabe soll im kompletten Unterverzeichnis überprüft werden, ob leere Ordner existieren.
Ich weiß wie man nach leeren Ordnern schaut, aber nicht, wie man durch die einzelnen Ordner gehen kann, um diese zu überprüfen.
Man kann zwar den Ordner angeben, aber das soll auch in anderen Verzeichnissen mit anderen Ordnern funktionieren.
Wie kann ich das machen?
Ich wünsche einen schönen Tag.
Re: Durch Directories gehen und überprüfen, ob der Ordner leer ist
Verfasst: Mittwoch 24. Juni 2020, 12:34
von Sirius3
pathlib.Path kennt rglob um alle Unterverzeichnisse zu durchsuchen. Dann ist das ein zwei-Zeiler.
Was hast Du denn schon versucht? Zeig doch Deinen Code. Wo kommst Du da nicht weiter?
Re: Durch Directories gehen und überprüfen, ob der Ordner leer ist
Verfasst: Mittwoch 24. Juni 2020, 13:21
von Python123.py
Sirius3 hat geschrieben: Mittwoch 24. Juni 2020, 12:34
pathlib.Path kennt rglob um alle Unterverzeichnisse zu durchsuchen. Dann ist das ein zwei-Zeiler.
Was hast Du denn schon versucht? Zeig doch Deinen Code. Wo kommst Du da nicht weiter?
Ich habe bislang sowas versucht:
Code: Alles auswählen
for (root,dirs,files) in os.walk(path, topdown=True):
if len(dirs and files) == 0:
print(os.listdir(dirs)) == 0[
else:
print()
Re: Durch Directories gehen und überprüfen, ob der Ordner leer ist
Verfasst: Mittwoch 24. Juni 2020, 13:31
von sparrow
Das tolle an Python ist, dass man Dinge auch einfach im interaktiven Interpreter ausprobieren kann.
Was denkst du denn, was "len(dirs and files)" tut? Probier das mal aus, ob das wirklich tut, was du willst. Ich gebe mal einen Hinweis:
Code: Alles auswählen
>>> x = [1, 2, 3]
>>> y = [4, 5, 6]
>>> (x and y)
[4, 5, 6]
Vielleicht meinst du eher
Und weil leere Listen immer False sind:
Re: Durch Directories gehen und überprüfen, ob der Ordner leer ist
Verfasst: Mittwoch 24. Juni 2020, 14:11
von __blackjack__
@Python123.py: Das ist falsch eingerückt und es ist eine eckige Klammer enthalten die zu nichts gehört. Das kommt so nicht am Compiler vorbei.
``topdown=True`` ist der Defaultwert für dieses Argument, das braucht man nicht extra angeben.
`pathlib.Path` hat Sirius3 ja bereits erwähnt. Die `os`-Funktionen zu dem Thema würde man in neuem Code eher nicht mehr verwenden.
Ergänzend zu sparrow: Das ist äquivalent zu:
Re: Durch Directories gehen und überprüfen, ob der Ordner leer ist
Verfasst: Mittwoch 24. Juni 2020, 15:06
von Python123.py
Danke für die ganzen Antworten!

Ich habe es hinbekommen.