Simon Willison’s Weblog

Python path module

The path Python module (via The Daily Python-URL) is a nice looking wrapper class for Python’s oft-confusing os.path module. Check out this neat code comparison:

# with os.path.walk
def delete_backups(arg, dirname, names):
    for name in names:
        if name.endswith('~'):
            os.remove(os.path.join(dirname, name))

os.path.walk(os.environ['HOME'], delete_backups, None)

# with os.path, if (like me) you can never remember how os.path.walk works
def walk_tree_delete_backups(dir):
    for name in os.listdir(dir):
        path = os.path.join(dir, name)
        if os.path.isdir(path):
        elif name.endswith('~'):


# with path
dir = path(os.environ['HOME'])
for f in dir.walk():
    if f.isfile() and f.endswith('~'):

I’d go for the third one any day.

This is Python path module by Simon Willison, posted on 22nd January 2003.

Next: Another standards rant

Previous: DOM support tables

Previously hosted at