@@ -306,65 +306,7 @@ def renames(old, new):
306306_walk_symlinks_as_files = object ()
307307
308308def walk (top , topdown = True , onerror = None , followlinks = False ):
309- """Directory tree generator.
310-
311- For each directory in the directory tree rooted at top (including top
312- itself, but excluding '.' and '..'), yields a 3-tuple
313-
314- dirpath, dirnames, filenames
315-
316- dirpath is a string, the path to the directory. dirnames is a list of
317- the names of the subdirectories in dirpath (including symlinks to directories,
318- and excluding '.' and '..').
319- filenames is a list of the names of the non-directory files in dirpath.
320- Note that the names in the lists are just names, with no path components.
321- To get a full path (which begins with top) to a file or directory in
322- dirpath, do os.path.join(dirpath, name).
323-
324- If optional arg 'topdown' is true or not specified, the triple for a
325- directory is generated before the triples for any of its subdirectories
326- (directories are generated top down). If topdown is false, the triple
327- for a directory is generated after the triples for all of its
328- subdirectories (directories are generated bottom up).
329-
330- When topdown is true, the caller can modify the dirnames list in-place
331- (e.g., via del or slice assignment), and walk will only recurse into the
332- subdirectories whose names remain in dirnames; this can be used to prune the
333- search, or to impose a specific order of visiting. Modifying dirnames when
334- topdown is false has no effect on the behavior of os.walk(), since the
335- directories in dirnames have already been generated by the time dirnames
336- itself is generated. No matter the value of topdown, the list of
337- subdirectories is retrieved before the tuples for the directory and its
338- subdirectories are generated.
339-
340- By default errors from the os.scandir() call are ignored. If
341- optional arg 'onerror' is specified, it should be a function; it
342- will be called with one argument, an OSError instance. It can
343- report the error to continue with the walk, or raise the exception
344- to abort the walk. Note that the filename is available as the
345- filename attribute of the exception object.
346-
347- By default, os.walk does not follow symbolic links to subdirectories on
348- systems that support them. In order to get this functionality, set the
349- optional argument 'followlinks' to true.
350-
351- Caution: if you pass a relative pathname for top, don't change the
352- current working directory between resumptions of walk. walk never
353- changes the current directory, and assumes that the client doesn't
354- either.
355-
356- Example:
357-
358- import os
359- from os.path import join, getsize
360- for root, dirs, files in os.walk('python/Lib/xml'):
361- print(root, "consumes ")
362- print(sum(getsize(join(root, name)) for name in files), end=" ")
363- print("bytes in", len(files), "non-directory files")
364- if '__pycache__' in dirs:
365- dirs.remove('__pycache__') # don't visit __pycache__ directories
366-
367- """
309+ """Walk the directory tree from 'top', similar to pathlib.Path.walk()."""
368310 sys .audit ("os.walk" , top , topdown , onerror , followlinks )
369311
370312 stack = [fspath (top )]
0 commit comments