Wie kann ich nur 3 bestimmte Ordner durchsuchen in python?

3 Antworten

Ich verstehe das Problem auch nicht ganz...

Du willst 3 Ordner selber festlegen? Dann nutze:

import os
paths = ["/tmp", "/home/mark/xxx", "/home/mark/yyy"]
for path in paths:
    print(os.listdir(path))

Willst du nur 3 Ebenen in die Tiefe gehen kannst du Rekursion verwenden:

import os

def list_dir(path, level):
    for entry in os.listdir(path):
        entrypath = os.path.join(path, entry)
        print((" |-> " * level) + entry)
        if os.path.isdir(entrypath) and level < 3:
            list_dir(entrypath, level + 1)

path = "/tmp"
list_dir(path, 0)
Woher ich das weiß:Berufserfahrung – Softwareentwickler f. Web, Win. & Linux (seit 2001)

Geht's darum nur 3 Ebenen zu durchsuchen, oder nur 3 Ebenen anzuzeigen?

Im letzteren Fall kannst du deine Liste vor dem Ausgeben durchgehen und alles rausfiltern, was mehr als die geforderten 3 Verzeichnisebenen hat.

Im ersten Fall wird das mit deinem Ansatz schwierig, da wäre eher os.walk() zu empfehlen.

Ich würde da weder mit Engeln noch mit Teufeln ringen, sondern:

i:=0;

if (i < 4) then suche begin

i:=i+1;

...

suche end;

Woher ich das weiß:Studium / Ausbildung – siehe auch Computer
Marius2710 
Fragesteller
 24.04.2020, 13:20

okay danke aber das sieht für mich irgentwie nach Java aus nicht wie python

0
Mauritan  24.04.2020, 13:21
@Marius2710

also die Syntax kannst Du Dir wohl selbst nachschlagen. Ich spreche soviele Programmiersprachen, dass ich es nur stilisiert hinschreibe und die Details dann den Compiler korrigieren lasse.

Es geht um die Idee.

1
Marius2710 
Fragesteller
 24.04.2020, 13:23
@Mauritan

okay trz danke bin halt noch ein anfänger ^^

0
Mauritan  24.04.2020, 13:31
@Marius2710

Relevant sind im Grunde nur, was vergleicht, und was zuweist.

Also wenn Du i etwas zuweist, haben die Sprachen dafür

:=

==

=

set

und anderes mehr.

Wenn Du sie vergleichst mit einem Wert, dann

ist da z.B

=

==

eq

einfach nachschagen.

1