Code source : Lib/glob.py

Le module globtrouve tous les noms de chemin correspondant à un motif spécifiéaccording to the rules used by the Unix shell, although results are returned inarbitrary order. Aucune expansion de tilde n’est faite, mais les *, ?, et les plages de caractères exprimées avec seront correctement correspondantes. Ceci est réalisé en utilisant les fonctions os.scandir() et fnmatch.fnmatch() de concert, et non pas en invoquant réellement un sous-shell. Notez que contrairement à fnmatch.fnmatch(),glob traite les noms de fichiers commençant par un point (.) comme des cas particuliers.(Pour le tilde et l’expansion des variables shell, utilisez os.path.expanduser() etos.path.expandvars().)

Pour une correspondance littérale, enveloppez les métacaractères entre parenthèses.Par exemple, '' correspond au caractère '?'.

Voir aussi

Le module pathlib offre des objets de chemin de haut niveau.

glob.glob(pathname, *, recursive=False)¶

Retourne une liste éventuellement vide de noms de chemin qui correspondent à pathname, qui doit être une chaîne contenant une spécification de chemin. pathname peut être absolu(comme /usr/src/Python-1.5/Makefile) ou relatif (comme../../Tools/*/*.gif), et peut contenir des caractères génériques de style shell. Les liens brokensymiques sont inclus dans les résultats (comme dans le shell). Le fait que les résultats soient triés ou non dépend du système de fichiers. Si un fichier qui satisfait auxconditions est supprimé ou ajouté pendant l’appel de cette fonction, le fait que le nom du chemin de ce fichier soit inclus n’est pas spécifié.

Si récursif est vrai, le motif « ** » correspondra à tous les fichiers et à zéro ou plus répertoires, sous-répertoires et liens symboliques vers les répertoires. Si le motif est suivi d’un os.sep ou d’un os.altsep, les fichiers ne correspondront pas.

Lève un événement d’audit glob.glob avec les arguments pathname, recursive.

Note

L’utilisation du motif « ** » dans de grandes arborescences de répertoires peut consommer une quantité de temps démesurée.

Changé dans la version 3.5 : prise en charge des globs récursifs utilisant « **« .

glob.iglob(pathname, *, recursive=False)¶

Retourne un itérateur qui donne les mêmes valeurs que glob()sans réellement les stocker toutes simultanément.

Lève un événement de vérification glob.glob avec les arguments pathname, recursive.

glob.escape(pathname)¶

Escape tous les caractères spéciaux ('?', '*' et '.txt'.

Nouveau dans la version 3.4.

Par exemple, considérons un répertoire contenant les fichiers suivants :1.gif, 2.txt, card.gif et un sous-répertoire subqui ne contient que le fichier 3.txt. glob() produira les résultats suivants. Remarquez comment tous les composants de tête du chemin sont conservés.

>>> import glob>>> glob.glob('./.*')>>> glob.glob('*.gif')>>> glob.glob('?.gif')>>> glob.glob('**/*.txt', recursive=True)>>> glob.glob('./**/', recursive=True)

Si le répertoire contient des fichiers commençant par ., ils ne seront pas comparés par défaut. Par exemple, considérons un répertoire contenant card.gif et.card.gif:

>>> import glob>>> glob.glob('*.gif')>>> glob.glob('.c*')

Voir aussi

Module fnmatch

Expansion de nom de fichier (et non de chemin) de style shell

.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.