\section{Standard Module \module{glob}} \label{module-glob} \stmodindex{glob} 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()}.) \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\version/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}