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.

#!/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
                
Tell me what you think.  This script would probably
have been easier to write with reqular expressions,
but I was determined to use glob.
_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to