kj wrote:
Perl's directory tree traversal facility is provided by the function
find of the File::Find module.  This function accepts an optional
callback, called postprocess, that gets invoked "just before leaving
the currently processed directory."  The documentation goes on to
say "This hook is handy for summarizing a directory, such as
calculating its disk usage", which is exactly what I use it for in
a maintenance script.

This maintenance script is getting long in the tooth, and I've been
meaning to add a few enhancements to it for a while, so I thought
that in the process I'd port it to Python, using the os.walk
function, but I see that os.walk does not have anything like this
File::Find::find's postprocess hook.  Is there a good way to simulate
it (without having to roll my own File::Find::find in Python)?

TIA!

kynn

Why would you need a special hook when the os.walk() generator yields exactly once per directory? So whatever work you do on the list of files you get, you can then put the summary logic immediately after.

Or if you really feel you need a special hook, then write a wrapper for os.walk(), which takes a hook function as a parameter, and after yielding each file in a directory, calls the hook. Looks like about 5 lines.

DaveA
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to