synching with os.walk()

Thomas Ploch Thomas.Ploch at gmx.net
Fri Nov 24 17:48:05 CET 2006


>> 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




More information about the Python-list mailing list