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: