
gherron at islandtraining
Jun 5, 2008, 12:41 AM
Post #3 of 5
(179 views)
Permalink
|
|
Re: os.path.walk -- Can You Limit Directories Returned?
[In reply to]
|
|
Jeff Nyman wrote: > Greetings all. > > I did some searching on this but I can't seem to find a specific > solution. I have code like this: > > ========================================= > def walker1(arg, dirname, names): > DC_List.append((dirname,'')) > > os.path.walk('\\\\vcdcflx006\\Flex\\Sites', walker1, 0) > ========================================= > > The Sites\ directory is set up like this: > > Sites\ > Baltimore > Birmingham > .... > > And so forth. Each of the city directories has directories under it as > well. The problem is that my code grabs every single directory that is > under the various city directories when what I really want it to do is > just grab the directories that are under Sites\ and that's it. I don't > want it to recurse down into the sub-directories of the cities. > > Is there a way to do this? Or is os.path.walk not by best choice here? > Yes. But first, use the more modern iterator os.walk instead of the older function calling os.path.walk. Then in either case (or at least for the os.walk -- I'm a little rusty on the older os.path.walk) you can modify in-place the subdirectory listing that was passed to you, thereby controlling which subdirectories the walk follows. Here's some examples: for path, dirs, files in os.walk(root): if 'etc' in dirs: dirs.remove('etc') # Skip any directory named 'etc' if path == 'whatever': del dirs[:] # Clearing dirs means recurse into NO subdirectory of path ... process the files of directory path... Gary Herron > Any help and/or advice would be appreciated. > > - Jeff > -- > http://mail.python.org/mailman/listinfo/python-list > -- http://mail.python.org/mailman/listinfo/python-list
|