10.7. "glob" — Recherche de chemins de style Unix selon certains motifs
***********************************************************************

**Code source :** Lib/glob.py

======================================================================

The "glob" module finds all the pathnames matching a specified pattern
according to the rules used by the Unix shell, although results are
returned in arbitrary order.  No tilde expansion is done, but "*",
"?", and character ranges expressed with "[]" will be correctly
matched.  This is done by using the "os.listdir()" and
"fnmatch.fnmatch()" functions in concert, and not by actually invoking
a subshell.  Note that unlike "fnmatch.fnmatch()", "glob" treats
filenames beginning with a dot (".") as special cases. (For tilde and
shell variable expansion, use "os.path.expanduser()" and
"os.path.expandvars()".)

Pour une correspondance littérale, il faut entourer le métacaractère
par des crochets. Par exemple, "'[?]'" reconnaît le caractère "'?'".

glob.glob(pathname)

   Renvoie une liste, potentiellement vide, de chemins correspondant
   au motif *pathname*, qui doit être une chaîne de caractères
   contenant la spécification du chemin. *pathname* peut être soit
   absolu (comme "/usr/src/Python-1.5/Makefile") soit relatif (comme
   "../../Tools/*/*.gif"), et contenir un caractère de remplacement de
   style shell. Les liens symboliques cassés sont aussi inclus dans
   les résultats (comme pour le shell).

glob.iglob(pathname)

   Renvoie un *iterator* qui produit les mêmes valeurs que "glob()",
   sans toutes les charger en mémoire simultanément.

   Nouveau dans la version 2.5.

For example, consider a directory containing only the following files:
"1.gif", "2.txt", and "card.gif".  "glob()" will produce the following
results.  Notice how any leading components of the path are preserved.

   >>> import glob
   >>> glob.glob('./[0-9].*')
   ['./1.gif', './2.txt']
   >>> glob.glob('*.gif')
   ['1.gif', 'card.gif']
   >>> glob.glob('?.gif')
   ['1.gif']

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

   >>> import glob
   >>> glob.glob('*.gif')
   ['card.gif']
   >>> glob.glob('.c*')
   ['.card.gif']

Voir aussi:

  Module "fnmatch"
     Recherche de noms de fichiers de style shell (ne concerne pas les
     chemins)
