[3.13] gh-127541: Update os.walk example (GH-127765) (GH-131869)

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 a5949986d6)

Co-authored-by: Totosuki <116938397+totosuki@users.noreply.github.com>
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
This commit is contained in:
Miss Islington (bot) 2025-03-29 07:49:15 +01:00 committed by GitHub
parent 1059b0cc84
commit 9ffa80f21e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 14 additions and 14 deletions

View File

@ -3621,16 +3621,16 @@ features:
This example displays the number of bytes taken by non-directory files in each 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 directory under the starting directory, except that it doesn't look under any
CVS subdirectory:: ``__pycache__`` subdirectory::
import os import os
from os.path import join, getsize 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(root, "consumes", end=" ")
print(sum(getsize(join(root, name)) for name in files), end=" ") print(sum(getsize(join(root, name)) for name in files), end=" ")
print("bytes in", len(files), "non-directory files") print("bytes in", len(files), "non-directory files")
if 'CVS' in dirs: if '__pycache__' in dirs:
dirs.remove('CVS') # don't visit CVS directories dirs.remove('__pycache__') # don't visit __pycache__ directories
In the next example (simple implementation of :func:`shutil.rmtree`), In the next example (simple implementation of :func:`shutil.rmtree`),
walking the tree bottom-up is essential, :func:`rmdir` doesn't allow walking the tree bottom-up is essential, :func:`rmdir` doesn't allow
@ -3683,16 +3683,16 @@ features:
This example displays the number of bytes taken by non-directory files in each 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 directory under the starting directory, except that it doesn't look under any
CVS subdirectory:: ``__pycache__`` subdirectory::
import os 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(root, "consumes", end="")
print(sum([os.stat(name, dir_fd=rootfd).st_size for name in files]), print(sum([os.stat(name, dir_fd=rootfd).st_size for name in files]),
end="") end="")
print("bytes in", len(files), "non-directory files") print("bytes in", len(files), "non-directory files")
if 'CVS' in dirs: if '__pycache__' in dirs:
dirs.remove('CVS') # don't visit CVS directories dirs.remove('__pycache__') # don't visit __pycache__ directories
In the next example, walking the tree bottom-up is essential: In the next example, walking the tree bottom-up is essential:
:func:`rmdir` doesn't allow deleting a directory before the directory is :func:`rmdir` doesn't allow deleting a directory before the directory is

View File

@ -337,12 +337,12 @@ def walk(top, topdown=True, onerror=None, followlinks=False):
import os import os
from os.path import join, getsize 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(root, "consumes ")
print(sum(getsize(join(root, name)) for name in files), end=" ") print(sum(getsize(join(root, name)) for name in files), end=" ")
print("bytes in", len(files), "non-directory files") print("bytes in", len(files), "non-directory files")
if 'CVS' in dirs: if '__pycache__' in dirs:
dirs.remove('CVS') # don't visit CVS directories dirs.remove('__pycache__') # don't visit __pycache__ directories
""" """
sys.audit("os.walk", top, topdown, onerror, followlinks) sys.audit("os.walk", top, topdown, onerror, followlinks)
@ -468,13 +468,13 @@ def fwalk(top=".", topdown=True, onerror=None, *, follow_symlinks=False, dir_fd=
Example: Example:
import os 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(root, "consumes", end="")
print(sum(os.stat(name, dir_fd=rootfd).st_size for name in files), print(sum(os.stat(name, dir_fd=rootfd).st_size for name in files),
end="") end="")
print("bytes in", len(files), "non-directory files") print("bytes in", len(files), "non-directory files")
if 'CVS' in dirs: if '__pycache__' in dirs:
dirs.remove('CVS') # don't visit CVS directories dirs.remove('__pycache__') # don't visit __pycache__ directories
""" """
sys.audit("os.fwalk", top, topdown, onerror, follow_symlinks, dir_fd) sys.audit("os.fwalk", top, topdown, onerror, follow_symlinks, dir_fd)
top = fspath(top) top = fspath(top)