fnmatch — Unix filename pattern matching
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. For example,
'[?]' 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)
Test whether filename matches pattern, returning
False; the comparison is case-sensitive and does not apply
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.
© 2001–2021 Python Software Foundation
Licensed under the PSF License.