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.
'[?]' matches the character
Note that the filename separator (
'/' on Unix) is not special to this
module. See module
glob for pathname expansion (
fnmatch() 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. If the operating system is case-insensitive, then both parameters will be normalized to all lower- or upper-case before the comparison is performed.
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)
Return the subset of the list of 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.
>>> import fnmatch, re >>> >>> regex = fnmatch.translate('*.txt') >>> regex '.*\\.txt\\Z(?ms)' >>> reobj = re.compile(regex) >>> reobj.match('foobar.txt') <_sre.SRE_Match object; span=(0, 10), match='foobar.txt'>
- Unix shell-style path expansion.