Python glob récursif

Python glob récursif
Glob est un mot global qui décrit de nombreuses stratégies qui peuvent être utilisées pour correspondre à certains modèles conformément aux directives associées à la coquille UNIX. Linux et Unix ont tous deux des systèmes d'exploitation et des shells qui prennent en charge Glob, et les deux ont des bibliothèques système qui prennent en charge la fonction glob ().

Le module GLOB de Python peut être utilisé pour obtenir les fichiers et les noms de chemin qui correspondent à un modèle spécifié. Les règles de modèle pour glob adhèrent à la norme définie par UNIX pour l'expansion du chemin. En plus de cela, il est prévu, selon les références, qu'il sera plus rapide que les approches existantes pour correspondre aux noms de chemin des répertoires. En plus de rechercher une chaîne exacte, nous pouvons utiliser les wilancards («*,?, [GAMES]) avec un globe pour rendre le processus de récupération de chemin plus simple et convivial.

En lisant l'article suivant, vous obtiendrez un aperçu de la fonction glob (), qui est un outil utile pour localiser les fichiers récursivement via le code Python.

La méthode Syntaxe pour glob () est:

globe.glob (path_name, *, récursif = false)

Remarque: la valeur récursive est définie sur false par défaut.

Exemple 1: Utilisation de la méthode Recursive Glob dans un programme Python pour imprimer le nom et la source des 10 premiers fichiers dans le répertoire donné

Dans cet exemple, nous utiliserons la plage de joker [0-9] pour localiser tous les fichiers dont les noms contiennent un numéro ou un chiffre avant l'extension. La plage de caractères [0-9] correspond à un seul chiffre. Le tableau de bord représente une portée ininterrompue de caractères consécutifs qui sont disposés en fonction du code des caractères pour chaque lettre / chiffre. Le caractère [0123456789] est une autre façon d'écrire la même valeur de plage.

Dans le code fourni, nous importons d'abord le module global pour utiliser ses méthodes. Dans la ligne suivante, une boucle pour une boucle est traversée dans le dossier qui a spécifié avec Glob avec le joker [0-9]. Puisque nous n'avons pas précisé si la boucle est récursive ou non, elle ne sera pas récursive par défaut. Dans la boucle pour, nous imprimons tous les éléments du dossier. Il imprime uniquement les fichiers qui ont un chiffre ou un numéro avant son extension comme indiqué dans la capture d'écran suivante:

Exemple 2: Utilisation de la méthode Recursive Glob pour localiser la source et le nom d'un fichier mentionné dans le paramètre et ne fournissant aucune condition à la fonction

Nous verrons ce qui se produit si aucun joker n'est utilisé dans cet exemple.

Dans le code suivant, le module glob est importé en premier. Dans la ligne suivante, une boucle pour une boucle est traversée le long du monde avec un chemin de fichier. Veuillez noter que le chemin est du fichier dans ce cas, contrairement au dossier dans le cas précédent. Cela signifie qu'il n'y a qu'un seul élément pour correspondre au monde. Et comme nous pouvons le voir, aucun joker n'est utilisé; il n'a rien à comparer. En conséquence, il renvoie le fichier spécifié qui peut être vu au terminal de sortie dans la capture d'écran suivante:

Exemple 3: Utilisation de la méthode Recursive Glob dans un programme Python pour imprimer le nom et la source de tous les fichiers présents dans le répertoire donné

Dans cet exemple, nous utiliserons le joker Asterisk «*» et verrons ce qu'il renvoie.

Dans le code fourni, le premier module glob est importé pour utiliser ses méthodes dans notre code. Dans la ligne suivante, une boucle pour une boucle est traversée dans Glob avec un chemin de dossier spécifié de «Desktop». Le motif correspond à chaque chemin d'accès (fichier ou répertoire) dans le répertoire «Desktop» mais ne revient pas davantage car l'autre paramètre n'a pas été donné et par défaut il n'est pas réécrite. Il imprime tous les éléments ou fichiers du dossier car il correspond à des caractères zéro. Ceci est montré dans la capture d'écran suivante:

Exemple 4: Utilisation de la méthode Recursive Glob pour localiser la source et le nom d'un fichier mentionné dans le paramètre et fournissant une condition dans la fonction avec elle

Un autre joker soutenu par Glob est «?". Dans cette position, cela correspond à un seul élément du nom.

Dans cet exemple, le module glob est importé en premier. Dans la ligne suivante, une boucle pour une boucle est traversée dans Glob avec un chemin de fichier pour correspondre à n'importe quel nom de fichier dans le dossier de bureau qui commence par «aléatoire», contient un caractère supplémentaire de tout type que ce soit du texte ou du chiffre ou un caractère, et conclut par «.texte". Étant donné qu'aucun fichier ne répondait à ces critères, rien n'est affiché sur le terminal de sortie comme indiqué dans la capture d'écran suivante:

Exemple 5: Utilisation de la méthode Recursive Glob dans un programme Python pour imprimer le nom et la source de tous les fichiers présents dans le répertoire donné avec un double astérisque dans le chemin avec le paramètre récursif défini comme vrai

Dans cet exemple, nous découvrirons une autre utilisation du joker avec glob. C'est un double astérisque «**». Cela permet au programme de faire correspondre récursivement zéro ou plus de sous-répertoires du répertoire actuel.

Dans la première étape, le module global est importé. Ensuite, le «glob.La méthode Glob »est appelée pour un chemin de dossier avec un joker« ** »à double astérisque et récursif = vrai. Cela permet au programme de faire correspondre récursivement zéro ou plus de sous-répertoires du répertoire actuel et enregistrer la liste des fichiers dans la variable nommée «F». Dans la ligne suivante, une boucle pour une boucle est traversée le long de la liste des fichiers dans «F» et s'affiche au terminal de sortie à l'aide de la commande d'impression comme indiqué dans la capture d'écran suivante:

Exemple 6: Utilisation de la fonction Recursive Glob IgloB dans un programme Python pour découvrir le nom et la source de tous les fichiers présents dans le répertoire donné avec un double astérisque dans le chemin avec le paramètre récursif défini comme vrai

Dans ce cas, nous allons effectuer l'astuce identique que nous avons faite dans la précédente. Mais plutôt que d'utiliser un glob.glob, nous utiliserons le glob.iglob (). La syntaxe pour «glob.iglob ”est le même qu'un globe.glob: glob.iglob (pathname, récursif = false). Sauf qu'il produit un itérateur, ce qui signifie que tous les éléments ne sont pas enregistrés en mémoire. Par conséquent, il peut être utilisé d'une manière beaucoup plus efficace.

Dans la première étape, le module global est importé. Ensuite, le «glob.La méthode Glob »est appelée pour un chemin de dossier avec un joker« ** »à double astérisque et récursif = vrai. Cela permet au programme de faire correspondre récursivement zéro ou plus de sous-répertoires du répertoire actuel. Cette fois, aucune liste n'est enregistrée dans aucune variable. Dans la ligne suivante, la boucle FOR est traversée le long du chemin IgloB avec un pointeur et est affichée au terminal de sortie en utilisant la commande d'impression dans chaque boucle comme indiqué dans la capture d'écran suivante:

Conclusion

Glob () et iglob () sont deux fonctions importantes qui itérent le chemin linéairement ou récursivement en fonction de la valeur du deuxième paramètre, qui pourrait être vrai ou faux. Python a rendu cela beaucoup plus efficace en tant que méthode, ce qui le rend beaucoup plus précieux que toute autre approche manuelle. J'espère que cet article vous a aidé à comprendre comment ces fonctions fonctionnent avec leurs différents jokers et comment il facilite notre vie.