[Python-checkins] cpython: Issue #22524: Rephrase scandir addition in What's New in Python 3.5
victor.stinner
python-checkins at python.org
Tue Mar 10 13:29:51 CET 2015
https://hg.python.org/cpython/rev/8d76dabd40f6
changeset: 94923:8d76dabd40f6
user: Victor Stinner <victor.stinner at gmail.com>
date: Tue Mar 10 13:29:41 2015 +0100
summary:
Issue #22524: Rephrase scandir addition in What's New in Python 3.5
Patch written by Ben Hoyt.
files:
Doc/whatsnew/3.5.rst | 26 ++++++++++++++++++--------
1 files changed, 18 insertions(+), 8 deletions(-)
diff --git a/Doc/whatsnew/3.5.rst b/Doc/whatsnew/3.5.rst
--- a/Doc/whatsnew/3.5.rst
+++ b/Doc/whatsnew/3.5.rst
@@ -115,13 +115,17 @@
PEP 471 - os.scandir() function -- a better and faster directory iterator
-------------------------------------------------------------------------
-:pep:`471` includes a new directory iteration function, :func:`os.scandir`,
-in the standard library.
+:pep:`471` adds a new directory iteration function, :func:`os.scandir`,
+to the standard library. Additionally, :func:`os.walk` is now
+implemented using :func:`os.scandir`, which speeds it up by 3-5 times
+on POSIX systems and by 7-20 times on Windows systems.
+
+PEP and implementation written by Ben Hoyt with the help of Victor Stinner.
.. seealso::
:pep:`471` -- os.scandir() function -- a better and faster directory
- iterator.
+ iterator
PEP 475: Retry system calls failing with EINTR
@@ -131,8 +135,6 @@
this means that user code doesn't have to deal with EINTR or InterruptedError
manually, and should make it more robust against asynchronous signal reception.
-PEP and implementation written by Ben Hoyt with the help of Victor Stinner.
-
.. seealso::
:pep:`475` -- Retry system calls failing with EINTR
@@ -294,9 +296,11 @@
os
--
-* New :func:`os.scandir` function: Return an iterator of :class:`os.DirEntry`
- objects corresponding to the entries in the directory given by *path*.
- (Implementation written by Ben Hoyt with the help of Victor Stinner.)
+* New :func:`os.scandir` function that exposes file information from
+ the operating system when listing a directory. :func:`os.scandir`
+ returns an iterator of :class:`os.DirEntry` objects corresponding to
+ the entries in the directory given by *path*. (Contributed by Ben
+ Hoyt with the help of Victor Stinner in :issue:`22524`.)
* :class:`os.stat_result` now has a :attr:`~os.stat_result.st_file_attributes`
attribute on Windows. (Contributed by Ben Hoyt in :issue:`21719`.)
@@ -419,6 +423,12 @@
The following performance enhancements have been added:
+* :func:`os.walk` has been sped up by 3-5x on POSIX systems and 7-20x
+ on Windows. This was done using the new :func:`os.scandir` function,
+ which exposes file information from the underlying ``readdir`` and
+ ``FindFirstFile``/``FindNextFile`` system calls. (Contributed by
+ Ben Hoyt with help from Victor Stinner in :issue:`23605`.)
+
* Construction of ``bytes(int)`` (filled by zero bytes) is faster and use less
memory for large objects. ``calloc()`` is used instead of ``malloc()`` to
allocate memory for these objects.
--
Repository URL: https://hg.python.org/cpython
More information about the Python-checkins
mailing list