Unterverzeichnisse in Python auflisten

Muhammad Maisam Abbas 30 Januar 2023
  1. Unterverzeichnisse mit dem Modul glob in Python auflisten
  2. Unterverzeichnisse mit der Funktion os.scandir() in Python auflisten
  3. Unterverzeichnisse mit der Funktion os.walk() in Python auflisten
Unterverzeichnisse in Python auflisten

Es gibt drei effektive Methoden, mit denen Sie alle Unterverzeichnisse in einem angegebenen Verzeichnis in Python auflisten können: die Funktion glob.glob(), die Funktion os.scandir() und die Funktion os.walk(). Dieses Tutorial zeigt, wie Sie mit diesen Funktionen arbeiten können, um Unterverzeichnisse in Python aufzulisten.

Unterverzeichnisse mit dem Modul glob in Python auflisten

Das Modul glob wird verwendet, um Pfadnamen zu erhalten, die einem bestimmten Muster entsprechen. Wir können die Funktion glob() innerhalb des Moduls glob von Python verwenden, um alle Unterverzeichnisse eines angegebenen Hauptverzeichnisses aufzulisten, indem wir /*/ am Ende des Verzeichnispfads angeben. Der folgende Programmausschnitt zeigt uns, wie wir mit dem Modul glob alle Unterverzeichnisse innerhalb des Hauptverzeichnisses auflisten:

import os
from glob import glob

glob(os.getcwd() + "/*/", recursive=True)

Ausgabe:

['/content/sample_data/', '/content/subdirectory/']

Wir haben alle Unterverzeichnisse unseres aktuellen Arbeitsverzeichnisses mit dem Modul glob im obigen Code aufgelistet. Der Nachteil dieser Methode besteht darin, dass keine versteckten Verzeichnisse angezeigt werden oder Verzeichnisse, in denen der Verzeichnisname mit einem Punkt . beginnt; es zeigt nur die unmittelbaren Unterverzeichnisse an.

Unterverzeichnisse mit der Funktion os.scandir() in Python auflisten

os ist ein integriertes Modul in Python, das für viele betriebssystembezogene Funktionen wie die Dateispeicherung verwendet werden kann. Mit der os.scandir() Funktion können alle Unterverzeichnisse eines angegebenen Hauptverzeichnisses aufgelistet werden. Diese Funktion verwendet den Verzeichnispfad als Eingabeparameter und gibt einen Iterator zurück, mit dem Dateien und Verzeichnisse innerhalb des Pfads durchlaufen werden können.

Der folgende Codeausschnitt zeigt uns, wie wir mit der Funktion os.scandir() alle Unterverzeichnisse innerhalb des Hauptverzeichnisses auflisten:

import os

[f.path for f in os.scandir(os.getcwd()) if f.is_dir()]

Ausgabe:

['/content/.config',
 '/content/.ipynb_checkpoints',
 '/content/sample_data',
 '/content/subdirectory']

Wir haben alle Unterverzeichnisse unseres aktuellen Arbeitsverzeichnisses mit der Funktion os.scandir() im obigen Code aufgelistet. Dieser Vorgang ist eine Verbesserung gegenüber dem vorherigen Ansatz, da er auch die versteckten Verzeichnisse oder die Verzeichnisse auflistet, deren Verzeichnisname mit einem Punkt . beginnt. Der einzige Nachteil dieser Methode besteht darin, dass nur die unmittelbaren untergeordneten Verzeichnisse des übergeordneten Hauptverzeichnisses angezeigt werden. Die Unterverzeichnisse innerhalb des Hauptverzeichnisses werden nicht abgerufen.

Unterverzeichnisse mit der Funktion os.walk() in Python auflisten

Die Funktion os.walk() ist eine weitere Methode, mit der alle Unterverzeichnisse innerhalb eines einzigen Hauptverzeichnisses in Python aufgelistet werden können. Die Funktion os.walk() nimmt den Pfad des Hauptverzeichnisses als Eingabeparameter und gibt eine Menge von Tupeln zurück, wobei das erste Element jedes Tupels der Pfad eines Unterverzeichnisses innerhalb des Verzeichnisbaums ist. Dies schließt alle Unterverzeichnisse und deren Unterunterverzeichnisse ein, bis der Verzeichnisbaum endet.

Die Funktion os.walk() liefert uns auch die versteckten Verzeichnisse oder die Verzeichnisse, in denen der Verzeichnisname mit einem Punkt . beginnt. Der folgende Codeausschnitt zeigt uns, wie wir mit der Funktion os.walk() alle Unterverzeichnisse innerhalb eines Hauptverzeichnisses auflisten:

import os

[x[0] for x in os.walk(os.getcwd())]

Ausgabe:

['/content',
 '/content/.config',
 '/content/.config/logs',
 '/content/.config/logs/2021.05.06',
 '/content/.config/configurations',
 '/content/.ipynb_checkpoints',
 '/content/sample_data',
 '/content/sample_data/.ipynb_checkpoints',
 '/content/sample_data/subsubdirectory',
 '/content/subdirectory']

Alle Unterverzeichnisse unseres aktuellen Arbeitsverzeichnisses haben wir mit der Funktion os.scandir() im obigen Programm aufgelistet. Wie wir sehen können, zeigt die Ausgabe alle Verzeichnisse innerhalb des Verzeichnisbaums. Das Ergebnis enthält auch alle versteckten Verzeichnisse.

Obwohl uns der Ansatz os.walk() alle Unterverzeichnisse und die Unterverzeichnisse mit allen versteckten Verzeichnissen anzeigt, haben alle oben diskutierten Methoden ihre eigenen einzigartigen Anwendungsfälle und sind in verschiedenen Szenarien hilfreich. Der beste Ansatz unter den von uns besprochenen hängt von dem spezifischen Problem ab, das Sie lösen möchten.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

Verwandter Artikel - Python Directory