Boucle de fichiers dans un répertoire en Python

Muhammad Waiz Khan 30 janvier 2023
  1. Boucler les fichiers d’un répertoire en Python en utilisant la méthode os.listdir()
  2. Bouclez les fichiers d’un répertoire en Python en utilisant la méthode pathlib.path().glob()
  3. Bouclez les fichiers dans un répertoire en Python en utilisant la méthode os.walk()
  4. Bouclez les fichiers d’un répertoire en Python en utilisant la méthode iglob()
Boucle de fichiers dans un répertoire en Python

Ce tutoriel explique les différentes façons de boucler les fichiers dans un répertoire en Python. Nous devons rechercher un fichier dans un répertoire pour mettre en œuvre des fonctionnalités telles que le partage de fichiers, la visualisation de fichiers ou le chargement de fichiers afin d’effectuer une action sur les données qui y sont enregistrées.

Supposons que nous ayons un nom de fichier et que nous devions lire les données de ce fichier, nous avons besoin d’une méthode pour parcourir les fichiers du répertoire afin de trouver le fichier dont nous avons besoin. Les différentes méthodes utilisées pour boucler les fichiers d’un répertoire en Python sont expliquées ci-dessous.

Boucler les fichiers d’un répertoire en Python en utilisant la méthode os.listdir()

La méthode listdir() du module os prend le chemin du répertoire en entrée et retourne une liste de tous les fichiers de ce répertoire. Comme nous voulons trouver le fichier spécifique dans le répertoire, nous devrons boucler à travers les noms des fichiers pour trouver le fichier requis. L’exemple de code ci-dessous démontre comment trouver un fichier spécifique en itérant à travers le fichier en utilisant la méthode listdir() en Python.

import os

files = os.listdir("Desktop/myFolder")
myfile = "filename.txt"

for filename in files:
    if filename == myfile:
        continue

Bouclez les fichiers d’un répertoire en Python en utilisant la méthode pathlib.path().glob()

La méthode path() du module pathlib prend la chaîne de chemin du répertoire en entrée et renvoie la liste de tous les chemins des fichiers dans le répertoire et les sous-répertoires.

Supposons que le fichier que nous voulons trouver est un fichier .txt, nous pouvons obtenir les chemins de tous les fichiers .txt en utilisant la méthode path().glob(). L’exemple de code ci-dessous montre comment boucler tous les fichiers .txt dans un répertoire en utilisant la méthode path en Python.

from pathlib import Path

pathlist = Path("Desktop/myFolder").glob("**/*.txt")
myfile = "filename.txt"
for path in pathlist:
    if path.name == myfile:
        continue

Le modèle **/*.txt renvoie tous les fichiers avec l’extension txt dans le dossier courant et ses sous-dossiers. Le motif path.name renvoie le nom du fichier seulement mais pas le chemin complet.

Bouclez les fichiers dans un répertoire en Python en utilisant la méthode os.walk()

La méthode walk() du module os prend également la chaîne du chemin du répertoire en entrée et retourne le chemin du répertoire racine sous forme de chaîne, la liste des sous-répertoires, et la liste de tous les fichiers du répertoire courant et de ses sous-répertoires.

Pour trouver le fichier portant le nom filename.txt, nous pouvons d’abord récupérer tous les fichiers du répertoire et ensuite les parcourir en boucle pour obtenir le fichier souhaité. L’exemple de code ci-dessous montre comment trouver un fichier en bouclant à travers les fichiers d’un répertoire.

import os

myfile = "filename.txt"
for root, dirs, files in os.walk("Desktop/myFolder"):
    for file in files:
        if file == myfile:
            print(file)

Bouclez les fichiers d’un répertoire en Python en utilisant la méthode iglob()

La méthode iglob() du module glob() prend en entrée le chemin du répertoire et l’extension du fichier requis et renvoie le chemin de tous les fichiers avec la même extension. L’exemple de code ci-dessous montre comment boucler les fichiers dans un répertoire et trouver le fichier requis en Python en utilisant la méthode iglob().

import glob

for filepath in glob.iglob("drive/test/*.txt"):
    if filepath.endswith("/filename.txt"):
        print(filepath)

Article connexe - Python File