Comment obtenir tous les fichiers d'un répertoire

  1. os.listdir pour obtenir tous les fichiers d’un répertoire en Python
  2. os.walk pour obtenir tous les fichiers dans un répertoire en Python
  3. glob.glob pour récupérer tous les fichiers d’un répertoire en Python

Vous pourriez avoir au moins 3 méthodes pour lister tous les fichiers d’un répertoire en Python, en utilisant les fonctions Python os.listdir, os.walk et glob.glob.

Voici la présomption de ce tutoriel,

  1. Version Python - Python 3
  2. Le nom du chemin est dirPath et il existe dans le système, par conséquent, nous n’aurons pas besoin de vérifier l’existence du répertoire.

os.listdir pour obtenir tous les fichiers d’un répertoire en Python

Le fichier os.listdir liste tous les fichiers et répertoires du répertoire, il a donc besoin de code supplémentaire pour filtrer les fichiers du résultat.

import os
dirPath = r"C:\git\DelftStack\content"
result = [f for f in os.listdir(dirPath) if os.path.isfile(os.path.join(dirPath, f))]
print(result)

os.listdir retourne seulement le chemin relatif des fichiers ou des dossiers en référence à dirPath, et la fonction os.path.isfile a besoin du chemin complet pour vérifier si c’est un fichier ou non, donc nous devons utiliser os.path.join pour combiner le dirPath et les résultats de os.listdir pour obtenir le chemin complet des fichiers ou des chemins.

os.walk pour obtenir tous les fichiers dans un répertoire en Python

os.walk generates the file names in the given directory by traversing the tree top-down (per default) or bottom-up. It yields a 3-tuple (dirpath, dirname, filenames) each time it walks to the directory in the tree (including top itself).

Tous les fichiers sont inclus dans le tuple pour le premier rendement de os.walk, donc une méthode Python est

import os
dirPath = r"C:\git\DelftStack\content"
result = next(os.walk(dirPath))[2]
print(result)

glob.glob pour récupérer tous les fichiers d’un répertoire en Python

Le module glob trouve tous les pathnames correspondant au motif spécifique donné selon les règles utilisées dans le shell Unix. Le module glob.glob retourne la liste des noms de chemins qui correspondent au modèle de noms de chemins donné. Le chemin du fichier a le motif *.*, c’est ce qui sera passé à glob.glob comme argument d’entrée.

python import glob dirPathPattern = r"C:\git\DelftStack\content\*.*" result = glog.glob(dirPathPattern) print(result) `

glob.glob renvoie le chemin complet des fichiers correspondants, comme C:\git\DelftStack\content\about.md.

Attention

Le résultat de la méthode glob.glob comme montré ici ne pourrait pas garantir qu’il s’agit de fichiers uniquement parce qu’elle vérifie seulement si le nom du chemin correspond au motif, mais ne vérifie pas s’il s’agit d’un fichier ou d’un répertoire.

Par exemple, si un répertoire a le nom d’un motif comme test.test, alors ce répertoire est aussi inclus dans le résultat.

Si vous devez vous assurer que la sortie ne contient que des fichiers, vous devez le vérifier avec la fonction os.path.isfile.

Article connexe - Python file-path

  • Comment supprimer un fichier et un répertoire en Python
  • Comment vérifier si un fichier existe en Python
  • Comment trouver des fichiers avec une certaine extension seulement en Python
  • comments powered by Disqus