https://github.com/python/cpython/commit/3cd04d47ddaabe5c09957d348474d863d9f93649 commit: 3cd04d47ddaabe5c09957d348474d863d9f93649 branch: 3.12 author: Miss Islington (bot) <31488909+miss-isling...@users.noreply.github.com> committer: picnixz <10796600+picn...@users.noreply.github.com> date: 2025-03-29T10:34:35Z summary:
[3.12] gh-127541: Update os.walk example (GH-127765) (#131873) gh-127541: Update os.walk example (GH-127765) Update os.walk example to be more modern, skip `__pycache__` dirs rather than `CVS` dirs. (cherry picked from commit a5949986d631391d37b1b329ad8badcf2000f9a9) Co-authored-by: Totosuki <116938397+totos...@users.noreply.github.com> Co-authored-by: Bénédikt Tran <10796600+picn...@users.noreply.github.com> files: M Doc/library/os.rst M Lib/os.py diff --git a/Doc/library/os.rst b/Doc/library/os.rst index 891d683f29706f..6537ae298b9d23 100644 --- a/Doc/library/os.rst +++ b/Doc/library/os.rst @@ -3547,16 +3547,16 @@ features: This example displays the number of bytes taken by non-directory files in each directory under the starting directory, except that it doesn't look under any - CVS subdirectory:: + ``__pycache__`` subdirectory:: import os from os.path import join, getsize - for root, dirs, files in os.walk('python/Lib/email'): + for root, dirs, files in os.walk('python/Lib/xml'): print(root, "consumes", end=" ") print(sum(getsize(join(root, name)) for name in files), end=" ") print("bytes in", len(files), "non-directory files") - if 'CVS' in dirs: - dirs.remove('CVS') # don't visit CVS directories + if '__pycache__' in dirs: + dirs.remove('__pycache__') # don't visit __pycache__ directories In the next example (simple implementation of :func:`shutil.rmtree`), walking the tree bottom-up is essential, :func:`rmdir` doesn't allow @@ -3609,16 +3609,16 @@ features: This example displays the number of bytes taken by non-directory files in each directory under the starting directory, except that it doesn't look under any - CVS subdirectory:: + ``__pycache__`` subdirectory:: import os - for root, dirs, files, rootfd in os.fwalk('python/Lib/email'): + for root, dirs, files, rootfd in os.fwalk('python/Lib/xml'): print(root, "consumes", end="") print(sum([os.stat(name, dir_fd=rootfd).st_size for name in files]), end="") print("bytes in", len(files), "non-directory files") - if 'CVS' in dirs: - dirs.remove('CVS') # don't visit CVS directories + if '__pycache__' in dirs: + dirs.remove('__pycache__') # don't visit __pycache__ directories In the next example, walking the tree bottom-up is essential: :func:`rmdir` doesn't allow deleting a directory before the directory is diff --git a/Lib/os.py b/Lib/os.py index 5619470275b875..465742d318440a 100644 --- a/Lib/os.py +++ b/Lib/os.py @@ -335,12 +335,12 @@ def walk(top, topdown=True, onerror=None, followlinks=False): import os from os.path import join, getsize - for root, dirs, files in os.walk('python/Lib/email'): + for root, dirs, files in os.walk('python/Lib/xml'): print(root, "consumes ") print(sum(getsize(join(root, name)) for name in files), end=" ") print("bytes in", len(files), "non-directory files") - if 'CVS' in dirs: - dirs.remove('CVS') # don't visit CVS directories + if '__pycache__' in dirs: + dirs.remove('__pycache__') # don't visit __pycache__ directories """ sys.audit("os.walk", top, topdown, onerror, followlinks) @@ -466,13 +466,13 @@ def fwalk(top=".", topdown=True, onerror=None, *, follow_symlinks=False, dir_fd= Example: import os - for root, dirs, files, rootfd in os.fwalk('python/Lib/email'): + for root, dirs, files, rootfd in os.fwalk('python/Lib/xml'): print(root, "consumes", end="") print(sum(os.stat(name, dir_fd=rootfd).st_size for name in files), end="") print("bytes in", len(files), "non-directory files") - if 'CVS' in dirs: - dirs.remove('CVS') # don't visit CVS directories + if '__pycache__' in dirs: + dirs.remove('__pycache__') # don't visit __pycache__ directories """ sys.audit("os.fwalk", top, topdown, onerror, follow_symlinks, dir_fd) top = fspath(top) _______________________________________________ Python-checkins mailing list -- python-checkins@python.org To unsubscribe send an email to python-checkins-le...@python.org https://mail.python.org/mailman3/lists/python-checkins.python.org/ Member address: arch...@mail-archive.com