Lister les sous-répertoires en Python

Muhammad Maisam Abbas 30 janvier 2023
  1. Lister les sous-répertoires avec le module glob en Python
  2. Lister les sous-répertoires avec la fonction os.scandir() en Python
  3. Lister les sous-répertoires avec la fonction os.walk() en Python
Lister les sous-répertoires en Python

Il existe trois méthodes efficaces que vous pouvez utiliser pour répertorier tous les sous-répertoires d’un répertoire spécifié en Python : la fonction glob.glob(), la fonction os.scandir() et la fonction os.walk(). Ce didacticiel montrera comment vous pouvez utiliser ces fonctions pour répertorier les sous-répertoires en Python.

Lister les sous-répertoires avec le module glob en Python

Le module glob est utilisé pour obtenir des noms de chemin qui correspondent à un modèle spécifique. Nous pouvons utiliser la fonction glob() à l’intérieur du module glob de Python pour lister tous les sous-répertoires d’un répertoire principal spécifié en spécifiant /*/ à la fin du chemin du répertoire. L’extrait de programme suivant nous montre comment lister tous les sous-répertoires du répertoire principal à l’aide du module glob :

import os
from glob import glob

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

Production:

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

Nous avons répertorié tous les sous-répertoires de notre répertoire de travail actuel avec le module glob dans le code ci-dessus. L’inconvénient de cette méthode est qu’elle n’affiche aucun répertoire caché ou répertoire où le nom du répertoire commence par un point .; il ne montre que les sous-répertoires immédiats.

Lister les sous-répertoires avec la fonction os.scandir() en Python

os est un module intégré à Python qui peut être utilisé pour de nombreuses fonctions liées au système d’exploitation, telles que le stockage de fichiers. La os.scandir() function peut être utilisée pour lister tous les sous-répertoires d’un répertoire principal spécifié. Cette fonction prend le chemin du répertoire comme paramètre d’entrée et renvoie un itérateur qui peut être utilisé pour parcourir les fichiers et les répertoires à l’intérieur du chemin.

L’extrait de code suivant nous montre comment lister tous les sous-répertoires dans le répertoire principal avec la fonction os.scandir() :

import os

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

Production:

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

Nous avons listé tous les sous-répertoires de notre répertoire de travail actuel avec la fonction os.scandir() dans le code ci-dessus. Ce processus est une amélioration par rapport à l’approche précédente car il répertorie également les répertoires cachés ou les répertoires où le nom du répertoire commence par un point .. Le seul inconvénient de cette méthode est qu’elle n’affiche que les répertoires enfants immédiats du répertoire parent principal. Il n’obtient pas les sous-répertoires dans le répertoire principal.

Lister les sous-répertoires avec la fonction os.walk() en Python

La fonction os.walk() est une autre méthode qui peut être utilisée pour répertorier tous les sous-répertoires dans un seul répertoire principal en Python. La fonction os.walk() prend le chemin du répertoire principal comme paramètre d’entrée et renvoie un ensemble de tuples, où le premier élément de chaque tuple est le chemin d’un sous-répertoire dans l’arborescence des répertoires. Cela inclut tous les sous-répertoires et leurs sous-répertoires jusqu’à la fin de l’arborescence des répertoires.

La fonction os.walk() nous donne également les répertoires cachés ou les répertoires où le nom du répertoire commence par un point .. L’extrait de code suivant nous montre comment lister tous les sous-répertoires d’un répertoire principal avec la fonction os.walk() :

import os

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

Production:

['/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']

Nous avons listé tous les sous-répertoires de notre répertoire de travail actuel avec la fonction os.scandir() dans le programme ci-dessus. Comme nous pouvons le voir, la sortie affiche tous les répertoires à l’intérieur de l’arborescence des répertoires. Le résultat inclut également tous les répertoires cachés.

Même si l’approche os.walk() nous montre tous les sous-répertoires et les sous-répertoires avec tous les répertoires cachés, toutes les méthodes décrites ci-dessus ont leurs propres cas d’utilisation et sont utiles dans différents scénarios. La meilleure approche parmi celles dont nous avons discuté dépend du problème spécifique que vous essayez de résoudre.

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

Article connexe - Python Directory