Welcome, guest | Sign In | My Account | Store | Cart
import os

def cvs_walk(currdir):
    """ walk through a CVS hierarchy

    Modeled after os.walk, this generator returns a topdown list of (currdir, dirs,
    files) tuples based on the CVS hierarchy.

    """
    dirs = []
    files = []
    if os.path.isdir(dir) and os.path.isdir(os.path.join(currdir, 'CVS')):
        for entry in open(os.path.join(currdir, 'CVS', 'Entries')):
            e = entry.split('/')
            if (len(e) > 1):
                if e[0] == 'D':
                    dirs.append(e[1])
                else:
                    files.append(e[1])
    yield (currdir, dirs, files)
    for d in dirs:
        for x in cvs_walk(os.path.join(currdir, d)):
            yield x
#
# use it just like os.path.walk
#

for (a_dir, dirs, files) in cvs_walk(top):
    for file in files:
        print os.path.join(a_dir, file)

History

  • revision 2 (13 years ago)
  • previous revisions are not available