Durch Directories gehen und überprüfen, ob der Ordner leer ist

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
Python123.py
User
Beiträge: 12
Registriert: Freitag 20. Dezember 2019, 12:39

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.
Sirius3
User
Beiträge: 18272
Registriert: Sonntag 21. Oktober 2012, 17:20

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?
Python123.py
User
Beiträge: 12
Registriert: Freitag 20. Dezember 2019, 12:39

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() 
Benutzeravatar
sparrow
User
Beiträge: 4538
Registriert: Freitag 17. April 2009, 10:28

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

Code: Alles auswählen

if len(dirs) == 0 and len(files) == 0:
Und weil leere Listen immer False sind:

Code: Alles auswählen

if not dirs and not files:
Benutzeravatar
__blackjack__
User
Beiträge: 14052
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

@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:

Code: Alles auswählen

if not (dirs or files):
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
Python123.py
User
Beiträge: 12
Registriert: Freitag 20. Dezember 2019, 12:39

Danke für die ganzen Antworten! :)
Ich habe es hinbekommen.
Antworten