On Jun 17, 5:15 pm, Ethan Furman <et...@stoneleaf.us> wrote: > John Salerno wrote: > > On Jun 17, 2:23 pm, Terry Reedy <tjre...@udel.edu> wrote: > > >> If you follow the second part of Greg's suggestion 'or one of the other > >> related function in the shutil module', you will find copytree() > >> "Recursively copy an entire directory tree rooted at src. " > > > Yeah, but shutil.copytree says: > > > "The destination directory, named by dst, must not already exist" > > > which again brings me back to the original problem. All I'm looking > > for is a simple way to copy files from one location to another, > > overwriting as necessary, but there doesn't seem to be a single > > function that does just that. > > If you don't mind deleting what's already there: > > shutil.rmtree(...) > shutil.copytree(...) > > If you do mind, roll your own (or borrow ;): > > 8<------------------------------------------------------------------- > #stripped down and modified version from 2.7 shutil (not tested) > def copytree(src, dst): > names = os.listdir(src) > if not os.path.exists(dst): # no error if already exists > os.makedirs(dst) > errors = [] > for name in names: > srcname = os.path.join(src, name) > dstname = os.path.join(dst, name) > try: > if os.path.isdir(srcname): > copytree(srcname, dstname, symlinks, ignore) > else: > copy2(srcname, dstname) > except (IOError, os.error), why: > errors.append((srcname, dstname, str(why))) > # catch the Error from the recursive copytree so that we can > # continue with other files > except Error, err: > errors.extend(err.args[0]) > if errors: > raise Error(errors) > 8<------------------------------------------------------------------- > > ~Ethan~
Thanks. Deleting what is already there is not a problem, I was just hoping to have it overwritten without any extra steps, but that's no big deal. -- http://mail.python.org/mailman/listinfo/python-list