The glob
and
fnmatch
Modules
The glob
module adds a necessary Unix shell
capability to Windows programmers. The glob
module includes the following function
-
glob.glob
(
wildcard
)
→ list
-
Return a list
of filenames that match
the given wild-card pattern. The fnmatch
module is used for the wild-card pattern matching.
A common use for glob
is something like the
following under Windows.
import glob, sys
for arg in sys.argv[1:]:
for f in glob.glob(arg):
process( f )
This makes Windows programs process command line arguments
somewhat like Unix programs. Each argument is passed to
glob.glob
to expand any patterns into a
list
of matching files. If the argument is not a
wild-card pattern, glob simply returns a list
containing this one file name.
The fnmatch
module has the algorithm for
actually matching a wild-card pattern against specific file names. This
module implements the Unix shell wild-card rules. These are not the same
as the more sophisticated regular expression rules. The module contains
the following function:
-
fnmatch.fnmatch
(
file
,
pattern
) → boolean
-
Return True if the file matches the pattern.
The patterns use *
to match any number of
characters, ?
to match any single character.
[letters]
matches any of these letters, and
[!letters]
matches any letter that is not in the
given set of letters.
>>>
import fnmatch
>>>
fnmatch.fnmatch('greppy.py','*.py')
True
>>>
fnmatch.fnmatch('README','*.py')
False