How to avoid certain directories when using os.walk?

Chris Rebert clp2 at rebertia.com
Fri Oct 30 01:17:39 EDT 2009


On Thu, Oct 29, 2009 at 9:53 PM, Peng Yu <pengyu.ut at gmail.com> wrote:
> I don't see a way to avoid walking over directories of certain names
> with os.walk. For example, I don't want os.walk return files whose
> path include '/backup/'. Is there a way to do so? Otherwise, maybe I
> will have to make my own program. Thank you!

Read the docs! (http://docs.python.org/library/os.html#os.walk):

"""
os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]])

    Generate the file names in a directory tree by walking the tree
either top-down or bottom-up. For each directory in the tree rooted at
directory top (including top itself), it yields a 3-tuple (dirpath,
dirnames, filenames).
[...]
    When topdown is True, the caller can modify the dirnames list
in-place (perhaps using del or slice assignment), and walk() will only
recurse into the subdirectories whose names remain in dirnames; this
can be used to prune the search, impose a specific order of visiting,
or even to inform walk() about directories the caller creates or
renames before it resumes walk() again.
"""

They even include a specific code example of how to skip unwanted
subdirectories.

Cheers,
Chris
--
http://blog.rebertia.com



More information about the Python-list mailing list