synching with os.walk()

120psi at gmail.com 120psi at gmail.com
Fri Nov 24 11:12:08 EST 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 )

Does this work for your needs?
-- Nils




More information about the Python-list mailing list