| \section{\module{glob} --- |
| \UNIX{} style pathname pattern expansion} |
| |
| \declaremodule{standard}{glob} |
| \modulesynopsis{\UNIX\ shell style pathname pattern expansion.} |
| |
| |
| The \module{glob} module finds all the pathnames matching a specified |
| pattern according to the rules used by the \UNIX{} shell. No tilde |
| expansion is done, but \code{*}, \code{?}, and character ranges |
| expressed with \code{[]} will be correctly matched. This is done by |
| using the \function{os.listdir()} and \function{fnmatch.fnmatch()} |
| functions in concert, and not by actually invoking a subshell. (For |
| tilde and shell variable expansion, use \function{os.path.expanduser()} |
| and \function{os.path.expandvars()}.) |
| \index{filenames!pathname expansion} |
| |
| \begin{funcdesc}{glob}{pathname} |
| Returns a possibly-empty list of path names that match \var{pathname}, |
| which must be a string containing a path specification. |
| \var{pathname} can be either absolute (like |
| \file{/usr/src/Python-1.5/Makefile}) or relative (like |
| \file{../../Tools/*/*.gif}), and can contain shell-style wildcards. |
| \end{funcdesc} |
| |
| For example, consider a directory containing only the following files: |
| \file{1.gif}, \file{2.txt}, and \file{card.gif}. \function{glob()} |
| will produce the following results. Notice how any leading components |
| of the path are preserved. |
| |
| \begin{verbatim} |
| >>> import glob |
| >>> glob.glob('./[0-9].*') |
| ['./1.gif', './2.txt'] |
| >>> glob.glob('*.gif') |
| ['1.gif', 'card.gif'] |
| >>> glob.glob('?.gif') |
| ['1.gif'] |
| \end{verbatim} |
| |
| |
| \begin{seealso} |
| \seemodule{fnmatch}{Shell-style filename (not path) expansion} |
| \end{seealso} |