mirror of
https://github.com/python/cpython.git
synced 2025-09-27 10:50:04 +00:00
gh-127541: Update os.walk example (GH-127765)
Update os.walk example to be more modern, skip `__pycache__` dirs rather than `CVS` dirs. Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
This commit is contained in:
parent
9c1e85fd64
commit
a5949986d6
2 changed files with 14 additions and 14 deletions
|
@ -3693,16 +3693,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
|
||||||
|
@ -3755,16 +3755,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
|
||||||
|
|
12
Lib/os.py
12
Lib/os.py
|
@ -345,12 +345,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)
|
||||||
|
@ -460,13 +460,13 @@ if {open, stat} <= supports_dir_fd and {scandir, stat} <= supports_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)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue