Lister tous les fichiers du répertoire et des sous-répertoires en Python

Fariba Laiq 30 janvier 2023
  1. Utilisez os.walk() pour répertorier tous les fichiers du répertoire et des sous-répertoires en Python
  2. Utilisez listdir() pour répertorier tous les fichiers du répertoire et des sous-répertoires en Python
  3. Utilisez glob pour répertorier tous les fichiers du répertoire et des sous-répertoires en Python
Lister tous les fichiers du répertoire et des sous-répertoires en Python

Python offre de nombreuses façons d’accéder à une liste de fichiers dans un répertoire et des sous-répertoires. Ce guide passera en revue os.walk(), listdir() et glob.

Utilisez os.walk() pour répertorier tous les fichiers du répertoire et des sous-répertoires en Python

Le module os de Python fournit un moyen d’interagir avec le système d’exploitation. Il possède de nombreuses fonctions intégrées qui traitent du système de fichiers.

Nous pouvons récupérer, créer, supprimer et modifier les répertoires à l’aide de ce module. Le walk() est une méthode récursive qui génère les noms de fichiers dans une arborescence de répertoires en marchant de haut en bas ou de bas en haut.

Dans le code suivant, nous avons affiché les fichiers du répertoire et des sous-répertoires de MyFolder. Dans notre cas, ce dossier est situé dans le répertoire personnel de l’environnement Python.

Exemple de code :

import os

root = "MyFolder"
for path, subdirs, files in os.walk(root):
    for name in files:
        print(os.path.join(path, name))

Production:

MyFolder\text_file1.txt
MyFolder\text_file2.txt
MyFolder\SubFolder1\text_file3.txt
MyFolder\SubFolder1\text_file4.txt

Utilisez listdir() pour répertorier tous les fichiers du répertoire et des sous-répertoires en Python

Dans le code suivant, nous parcourons l’arborescence des répertoires et accédons à ses fichiers et sous-fichiers sans utiliser la méthode walk. Nous avons spécifié le dossier racine MyFolder comme point de départ.

Ensuite, nous avons accédé aux répertoires et sous-répertoires de ce dossier à l’aide de listdir() et les avons stockés dans des éléments. Nous avons concaténé les noms des éléments avec le chemin précédent et vérifié s’il s’agit d’un répertoire à l’aide de la méthode isdir().

Si tel est le cas, nous poursuivrons nos recherches dans ce répertoire et appliquerons la même procédure. Nous avons ajouté le nom du fichier au chemin précédent s’il s’agit d’un nom de fichier et les avons affichés.

Exemple de code :

import os

root = "MyFolder"
files = []
walk = [root]
while walk:
    folder = walk.pop(0) + "/"
    items = os.listdir(folder)  # items = folders + files
    for i in items:
        i = folder + i
        (walk if os.path.isdir(i) else files).append(i)
print(files)

Production:

['MyFolder/text_file1.txt', 'MyFolder/text_file2.txt', 'MyFolder/SubFolder1/text_file3.txt', 'MyFolder/SubFolder1/text_file4.txt']

Utilisez glob pour répertorier tous les fichiers du répertoire et des sous-répertoires en Python

Le glob est un module intégré à Python qui signifie global. Ce module renvoie tous les chemins de fichiers dont le nom et l’extension correspondent à un modèle spécifique.

Ici, nous avons utilisé *.*, qui indique tout nom de fichier ayant une extension quelconque. On utilise le glob.glob() pour rechercher récursivement des fichiers à l’intérieur d’un répertoire ou d’un sous-répertoire.

Le modèle ** correspondra à tous les fichiers et à zéro ou plusieurs dossiers et sous-répertoires si récursif est défini sur True.

Exemple de code :

import glob

path = "MyFolder\**\*.*"
for file in glob.glob(path, recursive=True):
    print(file)

Production:

MyFolder\text_file1.txt
MyFolder\text_file2.txt
MyFolder\SubFolder1\text_file3.txt
MyFolder\SubFolder1\text_file4.txt
Auteur: Fariba Laiq
Fariba Laiq avatar Fariba Laiq avatar

I am Fariba Laiq from Pakistan. An android app developer, technical content writer, and coding instructor. Writing has always been one of my passions. I love to learn, implement and convey my knowledge to others.

LinkedIn

Article connexe - Python Directory