mirror of
				https://github.com/python/cpython.git
				synced 2025-11-03 19:34:08 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			55 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			TeX
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
	
		
			2 KiB
		
	
	
	
		
			TeX
		
	
	
	
	
	
\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}
 |