10.7. "glob" — Unix style pathname pattern expansion
****************************************************

**Source code:** 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()".)

For a literal match, wrap the meta-characters in brackets. For
example, "'[?]'" matches the character "'?'".

glob.glob(pathname)

   Return a possibly-empty list of path names that match *pathname*,
   which must be a string containing a path specification. *pathname*
   can be either absolute (like "/usr/src/Python-1.5/Makefile") or
   relative (like "../../Tools/*/*.gif"), and can contain shell-style
   wildcards. Broken symlinks are included in the results (as in the
   shell).

glob.iglob(pathname)

   Return an *iterator* which yields the same values as "glob()"
   without actually storing them all simultaneously.

   New in 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']

If the directory contains files starting with "." they won’t be
matched by default. For example, consider a directory containing
"card.gif" and ".card.gif":

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

See also:

  Module "fnmatch"
     Shell-style filename (not path) expansion
