Lorsqu'on travaille avec des fichiers en Python, il peut être nécessaire de récupérer des fichiers selon un motif spécifique. Le module glob de Python fournit des fonctions pour créer des listes de fichiers correspondant à des motifs donnés, comme les caractères génériques, et il prend en charge la recherche récursive avec "**". Voici comment importer le module et l'utiliser :
import glob
txt_files = glob.glob('*.txt') # Récupère tous les fichiers .txt dans le répertoire courant
print(txt_files, type(txt_files)) # Affiche la liste des fichiers .txt et son type
Supposons qu'il y ait trois fichiers texte dans le répertoire courant : file1.txt, file2.txt et file3.txt, la sortie serait :
La fonction glob prend un motif sous forme de chaîne de caractères et renvoie une liste des chemins de fichiers et de répertoires qui correspondent à ce motif.
Dans notre exemple précédent, nous avons utilisé le caractère générique * qui correspond à zéro ou plusieurs caractères. Ainsi, *.txt correspond à tous les fichiers se terminant par .txt.
Nous pouvons également rechercher des fichiers dans les sous-répertoires de manière récursive :
nested_files = glob.glob('**/*.txt', recursive=True) # Récupère tous les fichiers .txt de manière récursive
print(nested_files, type(nested_files)) # Affiche la liste des fichiers .txt et son type
En supposant qu'en plus de nos fichiers précédents, nous ayons un dossier folder1 dans le répertoire courant contenant file4.txt et file5.txt, la sortie serait :
Ici, nous avons utilisé ** dans notre motif. Ce symbole dans un motif de chemin représente tous les fichiers et zéro ou plusieurs répertoires et sous-répertoires. Nous avons également utilisé l'argument recursive=True pour permettre à la fonction de chercher dans les sous-répertoires. Par conséquent, '**/*.txt', recursive=True récupère tous les fichiers .txt du répertoire courant et de ses sous-répertoires.
C'est un moyen pratique de gérer les chemins de fichiers et d'automatiser les tâches de manipulation de fichiers en Python.
Défi : Trouver les fichiers .py
En tant que nouveau data scientist dans une startup technologique, on vous a confié la tâche d'organiser tous les fichiers Python de votre projet actuel. En raison du rush des dernières semaines, les fichiers Python (.py) sont dispersés un peu partout dans le répertoire courant. Votre mission est de créer un programme Python qui utilise glob pour lister tous les fichiers Python (.py) présents dans le répertoire courant. Cependant, comme vous ne vous intéressez qu'aux noms des fichiers et non à leur emplacement, la sortie doit uniquement contenir les noms de fichiers sans le chemin du répertoire.
Le programme n'a pas besoin de prendre d'entrée.
La sortie du programme doit contenir les noms des fichiers Python dans le répertoire courant, chaque nom sur une nouvelle ligne. N'incluez pas le chemin des répertoires dans la sortie. La sortie doit être triée par ordre alphabétique.