dans ce tutoriel, nous couvrons tout ce que vous devez savoir sur la façon de lister les fichiers dans un répertoire en utilisant Python.
Python est un langage à usage général, utilisé dans une variété de domaines tels que la science des données, L’apprentissage automatique et même dans le développement Web. Il ne semble pas y avoir de restriction dans l’application du langage Python.
Par conséquent, il semble assez trivial Python peut être utilisé pour lister les fichiers et les répertoires dans n’importe quel système., Le but de cet article est d’éclairer le lecteur sur les façons de lister les fichiers dans un système à L’aide de Python.
liste Tous les fichiers D’un répertoire utilisant Python
Pour interagir avec les répertoires d’un système utilisant Python, la bibliothèqueos
est utilisée.
1. En utilisant la bibliothèque’ os ‘
la méthode que nous allons exercer pour notre motif est listdir(). Comme son nom l’indique, il est utilisé pour lister les éléments dans les répertoires.,
# Importing the os libraryimport os# The path for listing itemspath = '.'# The list of itemsfiles = os.listdir(path)# Loop to print each filename separatelyfor filename in files:print(filename)
Résultat:
game_file.pyhi-lo_pygame.pyJournaldevlist_files1.pyhi_lo_pygame.mp4test.pylist_files.pymy_program.cppa.outcut.cpp
les utilisateurs de Linux peuvent facilement correspondre à au-dessus de la sortie en utilisant le standard de ls
commande sur le terminal.
Comme on peut voir les résultats de chaque méthode correspond.
2., Utiliser la bibliothèque ‘glob’
glob
est principalement une bibliothèque de correspondance de motif de nom de fichier, mais elle peut être utilisée pour lister les éléments du répertoire courant par:
Sortie:
game_file.pyhi-lo_pygame.pyJournaldevlist_files1.pyhi_lo_pygame.mp4test.pylist_files.pymy_program.cppa.outcut.cpp
le caractère générique '*'
est utilisé pour faire correspondre tous les éléments du répertoire courant. Puisque nous souhaitons afficher les éléments du répertoire courant, nous devons désactiver la nature récursive de la fonction glob()
.
3., Liste uniquement les fichiers du répertoire courant
dans les méthodes ci-dessus, le code python renvoyait tous les éléments du répertoire courant quelle que soit leur nature. Nous ne pouvons extraire que les fichiers en utilisant la fonction path.isfile()
dans la bibliothèque os
.
sortie:
game_file.pyhi-lo_pygame.pylist_files1.pyhi_lo_pygame.mp4test.pylist_files.pymy_program.cppa.outcut.cpp
dans l’extrait de code ci-dessus, la compréhension de la liste est utilisée pour filtrer uniquement les éléments qui sont en fait un fichier.,
Une autre chose importante à noter ici est que le code ci-dessus ne fonctionne pas pour les autres répertoires car la variable'f'
n’est pas un chemin absolu, mais un chemin relatif vers le répertoire courant.
liste récursive de tous les fichiers d’un répertoire
Pour imprimer les fichiers à l’intérieur d’un répertoire et de ses sous-répertoires, nous devons les parcourir récursivement.
1. En utilisant la bibliothèque’ os ‘
à l’aide de la méthode walk()
, nous pouvons parcourir chaque sous-répertoire dans un répertoire un par un.,
sortie:
la méthode os.walk()
suit simplement chaque sous-répertoire et extrait les fichiers de manière descendante par défaut. Il y a trois itérateurs utilisés pour parcourir la sortie de os.walk()
fonction:
-
path
– cette variable contient le répertoire actuel que la fonction observe pendant une certaine itération -
folders
– cette variable est une liste de répertoires à l’intérieur de'path'
répertoire., -
files
– Une liste de fichiers à l’intérieur de la balise'path'
répertoire.
la méthodejoin()
est utilisée pour concaténer le nom du fichier avec son répertoire parent, en nous fournissant le chemin relatif vers le fichier.
2. En utilisant la bibliothèque’ glob ‘
similaire à la procédure ci-dessus,glob
peut visiter récursivement chaque répertoire et extraire tous les éléments et les renvoyer.,
sortie:
le symbole '**'
utilisé avec la variable path indique à la fonction glob()
de faire correspondre les fichiers dans n’importe quel sous-répertoire. Le '*'
indique à la fonction de correspondre à tous les éléments d’un répertoire.
puisque nous souhaitons extraire uniquement les fichiers du répertoire complet, nous filtrons les fichiers en utilisant la fonctionisfile()
utilisée auparavant.
liste Tous les sous-répertoires dans un répertoire
Au lieu de lister les fichiers, nous pouvons lister tous les sous-répertoires présents dans un répertoire spécifique.,
Résultat:
./Documents/Journaldev
La différence mineure entre le listage des fichiers et des répertoires est la sélection de l’itérateur au cours du processus de os.walk()
fonction. Pour les fichiers, nous parcourons la variable files. Ici, nous faisons une boucle sur la variable folders.
liste des fichiers dans un répertoire avec un chemin absolu
Une fois que nous savons comment lister les fichiers dans un répertoire, l’affichage du chemin absolu est un jeu d’enfant. La méthodeabspath()
nous fournit le chemin absolu d’un fichier.,
Résultat:
Une chose à noter ici est que le abspath()
doit être fourni avec le chemin relatif du fichier et c’est le but de join()
fonction.
liste des fichiers dans un répertoire en faisant correspondre des motifs
Il existe plusieurs façons de filtrer les noms de fichiers correspondant à un motif particulier. Laissez-nous passer par chacun d’eux un par un.
1. En utilisant la bibliothèque’ fnmatch ‘
comme son nom l’indique,fnmatch
est une bibliothèque de correspondance de motifs de noms de fichiers., En utilisant fnmatch
avec nos bibliothèques d’extraction de noms de fichiers standard, Nous pouvons filtrer les fichiers correspondant à un modèle spécifique.
sortie:
List of files containing "file" in them./Documents/game_file.py./Documents/list_files1.py./Documents/list_files.py
la fonction fnmatch()
prend deux paramètres, le nom de fichier suivi du motif à apparier. Dans le code ci-dessus, nous examinons tous les fichiers contenant le mot file
.
2. En utilisant la bibliothèque’ glob ‘
Comme nous l’avons mentionné précédemment,glob's
le but principal est la correspondance de modèle de nom de fichier.,
Résultat:
./Documents/list_files1.py
ci-dessus correspondant à un modèle d’expression régulière '**/**.*'
peut être expliqué comme:
3. L’utilisation de la bibliothèque’ pathlib ‘
pathlib
suit une manière orientée objet d’interagir avec le système de fichiers. La fonction rglob()
à l’intérieur de la bibliothèque peut être utilisée pour extraire récursivement la liste des fichiers via un certain objet Path.
Cette liste de fichiers peut être filtrée à l’aide d’un motif dans la fonctionrglob()
.,
Résultat:
Documents/my_program.cppDocuments/Journaldev/mastermind.py
Le code ci-dessus extrait est utilisé pour lister tous les fichiers commençant par la lettre 'm'
.
liste des fichiers dans un répertoire avec une Extension spécifique
la liste des fichiers avec une extension spécifique en Python est quelque peu similaire à la correspondance de motifs. À cette fin, nous devons créer un modèle par rapport à l’extension de fichier.
Résultat:
Le fnmatch()
fonction de filtrer les fichiers se terminant par '.py'
, c’est des fichiers python., Si nous voulons extraire des fichiers avec différentes extensions, nous devons modifier cette partie du code. Par exemple, pour récupérer uniquement des fichiers C++, '.cpp'
doit être utilisé.
cela résume les façons de récupérer la liste des fichiers dans un répertoire en utilisant Python.
Conclusion
Il peut y avoir plusieurs façons de résoudre n’importe quel problème à portée de main, et le plus pratique n’est pas toujours la réponse. En ce qui concerne cet article, un programmeur Python doit être conscient de toutes les façons dont nous pouvons lister les fichiers dans un répertoire.