mirror of
https://github.com/python/cpython.git
synced 2025-08-02 16:13:13 +00:00
[3.9] bpo-40486: Specify what happens if directory content change diring iteration (GH-22025) (GH-22093)
(cherry picked from commit 306cfb3a37
)
Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
This commit is contained in:
parent
78ef1b6b12
commit
bd078df283
3 changed files with 17 additions and 3 deletions
|
@ -43,7 +43,9 @@ For example, ``'[?]'`` matches the character ``'?'``.
|
||||||
(like :file:`/usr/src/Python-1.5/Makefile`) or relative (like
|
(like :file:`/usr/src/Python-1.5/Makefile`) or relative (like
|
||||||
:file:`../../Tools/\*/\*.gif`), and can contain shell-style wildcards. Broken
|
:file:`../../Tools/\*/\*.gif`), and can contain shell-style wildcards. Broken
|
||||||
symlinks are included in the results (as in the shell). Whether or not the
|
symlinks are included in the results (as in the shell). Whether or not the
|
||||||
results are sorted depends on the file system.
|
results are sorted depends on the file system. If a file that satisfies
|
||||||
|
conditions is removed or added during the call of this function, whether
|
||||||
|
a path name for that file be included is unspecified.
|
||||||
|
|
||||||
.. index::
|
.. index::
|
||||||
single: **; in glob-style wildcards
|
single: **; in glob-style wildcards
|
||||||
|
|
|
@ -1837,6 +1837,8 @@ features:
|
||||||
Return a list containing the names of the entries in the directory given by
|
Return a list containing the names of the entries in the directory given by
|
||||||
*path*. The list is in arbitrary order, and does not include the special
|
*path*. The list is in arbitrary order, and does not include the special
|
||||||
entries ``'.'`` and ``'..'`` even if they are present in the directory.
|
entries ``'.'`` and ``'..'`` even if they are present in the directory.
|
||||||
|
If a file is removed from or added to the directory during the call of
|
||||||
|
this function, whether a name for that file be included is unspecified.
|
||||||
|
|
||||||
*path* may be a :term:`path-like object`. If *path* is of type ``bytes``
|
*path* may be a :term:`path-like object`. If *path* is of type ``bytes``
|
||||||
(directly or indirectly through the :class:`PathLike` interface),
|
(directly or indirectly through the :class:`PathLike` interface),
|
||||||
|
@ -2242,7 +2244,9 @@ features:
|
||||||
Return an iterator of :class:`os.DirEntry` objects corresponding to the
|
Return an iterator of :class:`os.DirEntry` objects corresponding to the
|
||||||
entries in the directory given by *path*. The entries are yielded in
|
entries in the directory given by *path*. The entries are yielded in
|
||||||
arbitrary order, and the special entries ``'.'`` and ``'..'`` are not
|
arbitrary order, and the special entries ``'.'`` and ``'..'`` are not
|
||||||
included.
|
included. If a file is removed from or added to the directory after
|
||||||
|
creating the iterator, whether an entry for that file be included is
|
||||||
|
unspecified.
|
||||||
|
|
||||||
Using :func:`scandir` instead of :func:`listdir` can significantly
|
Using :func:`scandir` instead of :func:`listdir` can significantly
|
||||||
increase the performance of code that also needs file type or file
|
increase the performance of code that also needs file type or file
|
||||||
|
@ -2992,7 +2996,10 @@ features:
|
||||||
*filenames* is a list of the names of the non-directory files in *dirpath*.
|
*filenames* is a list of the names of the non-directory files in *dirpath*.
|
||||||
Note that the names in the lists contain no path components. To get a full path
|
Note that the names in the lists contain no path components. To get a full path
|
||||||
(which begins with *top*) to a file or directory in *dirpath*, do
|
(which begins with *top*) to a file or directory in *dirpath*, do
|
||||||
``os.path.join(dirpath, name)``.
|
``os.path.join(dirpath, name)``. Whether or not the lists are sorted
|
||||||
|
depends on the file system. If a file is removed from or added to the
|
||||||
|
*dirpath* directory during generating the lists, whether a name for that
|
||||||
|
file be included is unspecified.
|
||||||
|
|
||||||
If optional argument *topdown* is ``True`` or not specified, the triple for a
|
If optional argument *topdown* is ``True`` or not specified, the triple for a
|
||||||
directory is generated before the triples for any of its subdirectories
|
directory is generated before the triples for any of its subdirectories
|
||||||
|
|
|
@ -890,6 +890,11 @@ call fails (for example because the path doesn't exist).
|
||||||
PosixPath('docs/_static')
|
PosixPath('docs/_static')
|
||||||
PosixPath('docs/Makefile')
|
PosixPath('docs/Makefile')
|
||||||
|
|
||||||
|
The children are yielded in arbitrary order, and the special entries
|
||||||
|
``'.'`` and ``'..'`` are not included. If a file is removed from or added
|
||||||
|
to the directory after creating the iterator, whether an path object for
|
||||||
|
that file be included is unspecified.
|
||||||
|
|
||||||
.. method:: Path.lchmod(mode)
|
.. method:: Path.lchmod(mode)
|
||||||
|
|
||||||
Like :meth:`Path.chmod` but, if the path points to a symbolic link, the
|
Like :meth:`Path.chmod` but, if the path points to a symbolic link, the
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue