Hi Neil, Neil Hodgson wrote: [snip] > There is no PEP yet but there is a wiki page. > http://wiki.python.org/moin/PathClass > Guido was unenthusiastic so a good step would be to produce some > compelling examples.
I guess it depends on what is "compelling" :) I've been trying to come up with some cases that I've run into where the path module has helped. One case I just came across was trying to do the equivalent of 'du -s *' in python, i.e. get the size of each of a directory's subdirectories. My two implemenations are below: import os import os.path from path import path def du_std(d): """Return a mapping of subdirectory name to total size of files in that subdirectory, much like 'du -s *' does. This implementation uses only the current python standard libraries""" retval = {} # Why is os.listdir() and not os.path.listdir()? # Yet another point of confusion for subdir in os.listdir(d): subdir = os.path.join(d, subdir) if os.path.isdir(subdir): s = 0 for root, dirs, files in os.walk(subdir): s += sum(os.path.getsize(os.path.join(root,f)) for f in files) retval[subdir] = s return retval def du_path(d): """Return a mapping of subdirectory name to total size of files in that subdirectory, much like 'du -s *' does. This implementation uses the proposed path module""" retval = {} for subdir in path(d).dirs(): retval[subdir] = sum(f.getsize() for f in subdir.walkfiles()) return retval I find the second easier to read, and easier to write - I got caught writing the first one when I wrote os.path.listdir() instead of os.listdir(). Cheers, Chris -- http://mail.python.org/mailman/listinfo/python-list