file walking in python
Question: So, I've got a working solution, but it's ugly and seems un-idiomatic. The
problem is this:

For a directory tree, where every directory is set up to have:

  * 1 `.xc` file
  * at least 1 `.x` file
  * any number of directories which follow the same format

and nothing else. I'd like to, given the root path and walk the tree applying
`xc()` to the contents of `.xc` fies, `x` to the contents to `.x` files, and
then doing the same thing to child folders' contents.

Actual code with explanation would be appreciated.

Thanks!


Answer: The function [`os.walk`](http://docs.python.org/library/os.html) recursively
walks through a directory tree, returning all file and subdirectory names.

So all you have to do is detect the `.x` and `.xc` extensions from the
filenames and apply your functions when they do (untested code follows):

    
    
    import os
    
    for dirpath, dnames, fnames in os.walk("./"):
        for f in fnames:
            if f.endswith(".x"):
                x(os.path.join(dirpath, f))
            elif f.endswith(".xc"):
                xc(os.path.join(dirpath,f))
    

This assumes `x` and `xc` can be called on filenames; alternately you can read
the contents first and pass that as a string to the functions.

