diff options
author | Petri Lehtinen <petri@digip.org> | 2013-02-23 18:53:03 (GMT) |
---|---|---|
committer | Petri Lehtinen <petri@digip.org> | 2013-02-23 18:53:27 (GMT) |
commit | ee4a20bad61b9315bb28e0162eefd7f0da110499 (patch) | |
tree | b2eeb1142863da0cda333b5d6ff85d6fadb53584 | |
parent | 9f74c6cf7d0fd6188194e7bba8f059843b9c3c89 (diff) | |
download | cpython-ee4a20bad61b9315bb28e0162eefd7f0da110499.zip cpython-ee4a20bad61b9315bb28e0162eefd7f0da110499.tar.gz cpython-ee4a20bad61b9315bb28e0162eefd7f0da110499.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 f16e8e1..1f60265 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): @@ -1078,6 +1078,9 @@ Tools/Demos 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. |