diff options
author | Petri Lehtinen <petri@digip.org> | 2013-02-23 18:56:15 (GMT) |
---|---|---|
committer | Petri Lehtinen <petri@digip.org> | 2013-02-23 18:56:15 (GMT) |
commit | 914ec6f718ee5ad911c5f6c27988f2d0eec5ec48 (patch) | |
tree | fc4cc64ff1bbc93be73e9598a34c175e4391b8dc | |
parent | 827b36bed8b03a9bfc52134f7b4b9981db00b2be (diff) | |
parent | e2c114733b1c9dc3a78c6723934e523e5260e156 (diff) | |
download | cpython-914ec6f718ee5ad911c5f6c27988f2d0eec5ec48.zip cpython-914ec6f718ee5ad911c5f6c27988f2d0eec5ec48.tar.gz cpython-914ec6f718ee5ad911c5f6c27988f2d0eec5ec48.tar.bz2 |
Issue #16695: Document how glob handles filenames starting with a dot
-rw-r--r-- | Doc/library/glob.rst | 15 | ||||
-rw-r--r-- | Lib/glob.py | 10 | ||||
-rw-r--r-- | Misc/NEWS | 3 |
3 files changed, 24 insertions, 4 deletions
diff --git a/Doc/library/glob.rst b/Doc/library/glob.rst index 2584361..eff138b 100644 --- a/Doc/library/glob.rst +++ b/Doc/library/glob.rst @@ -16,8 +16,10 @@ according to the rules used by 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.listdir` and :func:`fnmatch.fnmatch` functions in concert, and not by actually invoking a -subshell. (For tilde and shell variable expansion, use -:func:`os.path.expanduser` and :func:`os.path.expandvars`.) +subshell. Note that unlike :func:`fnmatch.fnmatch`, :mod:`glob` treats +filenames beginning with a dot (``.``) as special cases. (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 ``'?'``. @@ -51,6 +53,15 @@ preserved. :: >>> glob.glob('?.gif') ['1.gif'] +If the directory contains files starting with ``.`` they won't be matched by +default. For example, consider a directory containing :file:`card.gif` and +:file:`.card.gif`:: + + >>> import glob + >>> glob.glob('*.gif') + ['card.gif'] + >>> glob.glob('.c*') + ['.card.gif'] .. seealso:: diff --git a/Lib/glob.py b/Lib/glob.py index c9f8117..1a268a3 100644 --- a/Lib/glob.py +++ b/Lib/glob.py @@ -9,7 +9,10 @@ __all__ = ["glob", "iglob"] def glob(pathname): """Return a list of paths matching a pathname pattern. - The pattern may contain simple shell-style wildcards a la fnmatch. + The pattern may contain simple shell-style wildcards a la + fnmatch. However, unlike fnmatch, filenames starting with a + dot are special cases that are not matched by '*' and '?' + patterns. """ return list(iglob(pathname)) @@ -17,7 +20,10 @@ def glob(pathname): def iglob(pathname): """Return an iterator which yields the paths matching a pathname pattern. - The pattern may contain simple shell-style wildcards a la fnmatch. + The pattern may contain simple shell-style wildcards a la + fnmatch. However, unlike fnmatch, filenames starting with a + dot are special cases that are not matched by '*' and '?' + patterns. """ if not has_magic(pathname): @@ -1012,6 +1012,9 @@ Build Documentation ------------- +- Issue #16695: Document how glob handles filenames starting with a + dot. Initial patch by Jyrki Pulliainen. + - Issue #8890: Stop advertising an insecure practice by replacing uses of the /tmp directory with better alternatives in the documentation. Patch by Geoff Wilson. |