>> os.walk() is a nice generator for performing actions on all files in a >> directory and subdirectories. However, how can one use os.walk() for walking >> through two hierarchies at once? I want to synchronise two directories (just >> backup for now), but cannot see how I can traverse a second one. I do this >> now with os.listdir() recursively, which works fine, but I am afraid that >> recursion can become inefficient for large hierarchies. > > I've run into wanting to work with parallel directory structures > before, and what I generally do is something like: > > for root, dirs, files in os.walk( dir1 ): > dir2_root = dir2 + root[len(dir1):] > for f in files: > dir1_path = os.path.join( root, f ) > dir2_path = os.path.join( dir2_root, f ) >
Wouldn't it be better to implement tree traversing into a class, then you can traverse two directory trees at once and can do funny things with it? Thomas -- http://mail.python.org/mailman/listinfo/python-list