| \section{\module{fnmatch} --- |
| \UNIX{} filename pattern matching} |
| |
| \declaremodule{standard}{fnmatch} |
| \modulesynopsis{\UNIX\ shell style filename pattern matching.} |
| |
| |
| \index{filenames!wildcard expansion} |
| |
| This module provides support for \UNIX{} shell-style wildcards, which |
| are \emph{not} the same as regular expressions (which are documented |
| in the \refmodule{re}\refstmodindex{re} module). The special |
| characters used in shell-style wildcards are: |
| |
| \begin{tableii}{c|l}{code}{Pattern}{Meaning} |
| \lineii{*}{matches everything} |
| \lineii{?}{matches any single character} |
| \lineii{[\var{seq}]}{matches any character in \var{seq}} |
| \lineii{[!\var{seq}]}{matches any character not in \var{seq}} |
| \end{tableii} |
| |
| Note that the filename separator (\code{'/'} on \UNIX) is \emph{not} |
| special to this module. See module |
| \refmodule{glob}\refstmodindex{glob} for pathname expansion |
| (\refmodule{glob} uses \function{fnmatch()} to match pathname |
| segments). Similarly, filenames starting with a period are |
| not special for this module, and are matched by the \code{*} and |
| \code{?} patterns. |
| |
| |
| \begin{funcdesc}{fnmatch}{filename, pattern} |
| Test whether the \var{filename} string matches the \var{pattern} |
| string, returning true or false. If the operating system is |
| case-insensitive, then both parameters will be normalized to all |
| lower- or upper-case before the comparison is performed. If you |
| require a case-sensitive comparison regardless of whether that's |
| standard for your operating system, use \function{fnmatchcase()} |
| instead. |
| \end{funcdesc} |
| |
| \begin{funcdesc}{fnmatchcase}{filename, pattern} |
| Test whether \var{filename} matches \var{pattern}, returning true or |
| false; the comparison is case-sensitive. |
| \end{funcdesc} |
| |
| \begin{funcdesc}{filter}{names, pattern} |
| Return the subset of the list of \var{names} that match \var{pattern}. |
| It is the same as \code{[n for n in names if fnmatch(n, pattern)]}, but |
| implemented more efficiently. |
| \versionadded{2.2} |
| \end{funcdesc} |
| |
| \begin{seealso} |
| \seemodule{glob}{\UNIX{} shell-style path expansion.} |
| \end{seealso} |