Comment obtenir tous les fichiers d'un répertoire
-
os.listdir
pour obtenir tous les fichiers d’un répertoire en Python -
os.walk
pour obtenir tous les fichiers dans un répertoire en Python -
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,
- Version Python - Python 3
- 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.
import glob
dirPathPattern = r"C:\git\DelftStack\content\*.*"
result = glog.glob(dirPathPattern)
print(result)
glob.glob
retourne le chemin complet des fichiers correspondants, comme C:\git\DelftStack\content\about.rst
.
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
.
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn FacebookArticle connexe - Python File
- Comment ajouter du texte à un fichier en Python
- Comment vérifier si un fichier existe en Python
- Comment trouver des fichiers avec une certaine extension seulement en Python
- Comment lire des lignes spécifiques d'un fichier en Python
- Lire un fichier texte et imprimer son contenu en Python