Comment lister tous les fichiers d’un répertoire en Python

Dans ce tutoriel, nous allons découvrir différentes méthodes pour obtenir la liste de tous les fichiers de l’arborescence d’un répertoire.
 
 

Méthode 1: Utiliser os.listdir()

La méthode listdir() renvoie une liste contenant les noms des entrées du répertoire donné. La liste est dans un ordre arbitraire. Il n’inclut pas les entrées spéciales ‘.’ et ‘..’ même s’ils sont présents dans le répertoire.
 
Code source :

import os
 
path = '.'
 
files = os.listdir(path)
for name in files:
    print(name)

 
 

Méthode 2: Utiliser os.walk()

Le module os contient une liste de méthodes traitant le système de fichiers et le système d’exploitation. La méthode walk() génère les noms de fichiers d’une arborescence de répertoires en parcourant l’arborescence de haut en bas ou de bas en haut (le paramètre par défaut étant de haut en bas).

os.walk() renvoie une liste de trois éléments. Il contient le nom du répertoire racine, une liste des noms des sous-répertoires et une liste des noms de fichiers du répertoire en cours.
 
Code source :

import os

for root, directories, files in os.walk("."):  
    for file in files:
        print(file)

 
 

Méthode 3: Utiliser glob.glob()

glob.glob() retourne la liste des fichiers avec leur path complet (contrairement à os.listdir()) et est plus puissant que os.listdir qui n’utilise pas des expressions régulières. En plus, glob contient les modules os, sys et re.

Code source : Lister tous les fichiers .txt

import glob

files = []
for file in glob.glob("*.txt"):
    files.append(file)

Code source : Lister tous les fichiers .txt avec l’utilisation de liste de compréhension

import glob

files = [file for file in glob.glob("*.txt")]
QCM Python

Une réflexion sur “Comment lister tous les fichiers d’un répertoire en Python

  • mai 10, 2020 à 6:08 pm
    Permalien
    import glob
    print(glob.glob("*.txt"))

    Renvoie directement une liste, pas besoin générer de liste compréhension ou de faire un ‘for each’

    Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *