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:
Pattern | Meaning |
---|---|
* |
matches everything |
? |
matches any single character |
[seq] |
matches any character in seq |
[!seq] |
matches any character not in seq |
Note that the filename separator ('/'
on Unix) is not
special to this module. See module
glob for pathname expansion
(glob uses fnmatch() to match pathname
segments). Similarly, filenames starting with a period are
not special for this module, and are matched by the *
and
?
patterns.
filename, pattern) |
This example will print all file names in the current directory with the
extension .txt
:
import fnmatch import os for file in os.listdir('.'): if fnmatch.fnmatch(file, '*.txt'): print file
filename, pattern) |
names, pattern) |
[n for n in names if fnmatch(n, pattern)]
, but
implemented more efficiently.
New in version 2.2.
pattern) |
Example:
>>> import fnmatch, re >>> >>> regex = fnmatch.translate('*.txt') >>> regex '.*\\.txt$' >>> reobj = re.compile(regex) >>> print reobj.match('foobar.txt') <_sre.SRE_Match object at 0x...>
See Also: