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.
Durch Directories gehen und überprüfen, ob der Ordner leer ist
-
- User
- Beiträge: 12
- Registriert: Freitag 20. Dezember 2019, 12:39
Ich habe bislang sowas versucht: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?
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()
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:
Vielleicht meinst du eher
Und weil leere Listen immer False sind:
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]
Code: Alles auswählen
if len(dirs) == 0 and len(files) == 0:
Code: Alles auswählen
if not dirs and not files:
- __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:
``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
-
- User
- Beiträge: 12
- Registriert: Freitag 20. Dezember 2019, 12:39
Danke für die ganzen Antworten! 
Ich habe es hinbekommen.

Ich habe es hinbekommen.