Source code: Lib/fnmatch.py
This module provides support for Unix shell-style wildcards, which are not the
same as regular expressions (which are documented in the
re module). The
special characters used in shell-style wildcards are:
matches any single character
matches any character in seq
matches any character not in seq
For a literal match, wrap the meta-characters in brackets.
'[?]' matches the character
Note that the filename separator (
'/' on Unix) is not special to this
module. See module
glob for pathname expansion (
filter() to match pathname segments). Similarly, filenames starting with
a period are not special for this module, and are matched by the
Test whether the filename string matches the pattern string, returning
False. Both parameters are case-normalized using
fnmatchcase()can be used to perform a case-sensitive comparison, regardless of whether that’s standard for the operating system.
This example will print all file names in the current directory with the extension
import fnmatch import os for file in os.listdir('.'): if fnmatch.fnmatch(file, '*.txt'): print(file)
Construct a list from those elements of the iterable names that match pattern. It is the same as
[n for n in names if fnmatch(n, pattern)], but implemented more efficiently.
Return the shell-style pattern converted to a regular expression for using with
>>> import fnmatch, re >>> >>> regex = fnmatch.translate('*.txt') >>> regex '(?s:.*\\.txt)\\Z' >>> reobj = re.compile(regex) >>> reobj.match('foobar.txt') <re.Match object; span=(0, 10), match='foobar.txt'>
Unix shell-style path expansion.