[Python-Dev] os.path.walk() lacks 'depth first' option (original) (raw)
Guido van Rossum guido@python.org
Tue, 13 May 2003 11:40:53 -0400
- Previous message: [Python-Dev] os.path.walk() lacks 'depth first' option
- Next message: [Python-Dev] os.path.walk() lacks 'depth first' option
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
How about this patch?
Index: os.py
RCS file: /cvsroot/python/python/dist/src/Lib/os.py,v retrieving revision 1.70 diff -c -c -r1.70 os.py *** os.py 25 Apr 2003 07:11:48 -0000 1.70 --- os.py 13 May 2003 15:40:21 -0000
*** 203,209 ****
all.extend(["makedirs", "removedirs", "renames"])
! def walk(top, topdown=True): """Directory tree generator.
For each directory in the directory tree rooted at top (including top
--- 203,209 ----
all.extend(["makedirs", "removedirs", "renames"])
! def walk(top, topdown=True, onerror=None): """Directory tree generator.
For each directory in the directory tree rooted at top (including top
*** 232,237 **** --- 232,243 ---- dirnames have already been generated by the time dirnames itself is generated.
By default errors from the os.listdir() call are ignored. If
optional arg 'onerror' is specified, it should be a function;
it will be called with one argument, an exception instance. It
can report the error to continue with the walk, or raise the
exception to abort the walk.
Caution: if you pass a relative pathname for top, don't change the current working directory between resumptions of walk. walk never changes the current directory, and assumes that the client doesn't
*** 259,265 **** # Note that listdir and error are globals in this module due # to earlier import-*. names = listdir(top) ! except error: return
dirs, nondirs = [], []
--- 265,273 ---- # Note that listdir and error are globals in this module due # to earlier import-*. names = listdir(top) ! except error, err: ! if onerror is not None: ! onerror(err) return
dirs, nondirs = [], []
*** 274,280 **** for name in dirs: path = join(top, name) if not islink(path): ! for x in walk(path, topdown): yield x if not topdown: yield top, dirs, nondirs --- 282,288 ---- for name in dirs: path = join(top, name) if not islink(path): ! for x in walk(path, topdown, onerror): yield x if not topdown: yield top, dirs, nondirs
--Guido van Rossum (home page: http://www.python.org/~guido/)
- Previous message: [Python-Dev] os.path.walk() lacks 'depth first' option
- Next message: [Python-Dev] os.path.walk() lacks 'depth first' option
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]