>I created a function that takes a pattern and a base
> path and then uses os.walk and glob to traverse
> directories starting from the base path and place
> files that match the glob pattern in a dictionary.

I'm not sure why you are traversing the paths a second time.
Why not just apply glob within the os.walk traversal?
After all you are putting the path into the path list, then 
iterating over that list later, why not just apply glob the 
first time around?

> #!/usr/bin/python
> 
> import os, os.path, glob
> 
> def glob_files(pattern, base = '.'):
> path_list = []
> abs_base = os.path.abspath(base)
> path_list.append(abs_base)
> for root,dirs,files in os.walk(abs_base):
> for name in dirs:
> path = os.path.join(root, name)
> #print path
> path_list.append(path)
> globbed = {}
> cwd = os.getcwd()
> for p in path_list:
> os.chdir(p)
> matched_files = glob.glob(pattern)
> if matched_files != []:
> globbed[p] = matched_files
> os.chdir(abs_base)
> os.chdir(cwd)
> return globbed

Alan Gauld
Author of the Learn to Program web site
http://www.freenetpages.co.uk/hp/alan.gauld
_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to