Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 12 additions & 8 deletions Doc/library/glob.rst
Original file line number Diff line number Diff line change
Expand Up @@ -18,23 +18,27 @@
single: - (minus); in glob-style wildcards
single: . (dot); in glob-style wildcards

The :mod:`glob` module finds all the pathnames matching a specified pattern
according to the rules used by the Unix shell, although results are returned in
arbitrary order. No tilde expansion is done, but ``*``, ``?``, and character
The :mod:`!glob` module finds pathnames
using pattern matching rules similar to the Unix shell.
No tilde expansion is done, but ``*``, ``?``, and character
ranges expressed with ``[]`` will be correctly matched. This is done by using
the :func:`os.scandir` and :func:`fnmatch.fnmatch` functions in concert, and
not by actually invoking a subshell.

Note that files beginning with a dot (``.``) can only be matched by
.. note::
The pathnames are returned in no particular order. If you need a specific
order, sort the results.

Files beginning with a dot (``.``) can only be matched by
patterns that also start with a dot,
unlike :func:`fnmatch.fnmatch` or :func:`pathlib.Path.glob`.
(For tilde and shell variable expansion, use :func:`os.path.expanduser` and
:func:`os.path.expandvars`.)
For tilde and shell variable expansion, use :func:`os.path.expanduser` and
:func:`os.path.expandvars`.

For a literal match, wrap the meta-characters in brackets.
For example, ``'[?]'`` matches the character ``'?'``.

The :mod:`glob` module defines the following functions:
The :mod:`!glob` module defines the following functions:


.. function:: glob(pathname, *, root_dir=None, dir_fd=None, recursive=False, \
Expand All @@ -51,7 +55,7 @@ The :mod:`glob` module defines the following functions:

If *root_dir* is not ``None``, it should be a :term:`path-like object`
specifying the root directory for searching. It has the same effect on
:func:`glob` as changing the current directory before calling it. If
:func:`!glob` as changing the current directory before calling it. If
*pathname* is relative, the result will contain paths relative to
*root_dir*.

Expand Down
6 changes: 6 additions & 0 deletions Lib/glob.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,6 +22,9 @@ def glob(pathname, *, root_dir=None, dir_fd=None, recursive=False,
dot are special cases that are not matched by '*' and '?'
patterns by default.

The order of the returned list is undefined. Sort it if you need a
particular order.

If `include_hidden` is true, the patterns '*', '?', '**' will match hidden
directories.

Expand All @@ -40,6 +43,9 @@ def iglob(pathname, *, root_dir=None, dir_fd=None, recursive=False,
dot are special cases that are not matched by '*' and '?'
patterns.

The order of the returned paths is undefined. Sort them if you need a
particular order.

If recursive is true, the pattern '**' will match any files and
zero or more directories and subdirectories.
"""
Expand Down
Loading