[Tutor] Re: Copy without overwrite?

Bernard Lebel python at bernardlebel.com
Wed Sep 22 13:20:26 CEST 2004


Hi Kent, I implemented your suggestions. I have one question about the error handling thing.
Do you keep at the end of the loop the raise statement?

if errors:
  raise s.Error, errors


Thanks
Bernard

----- Original Message ----- 
From: "Kent Johnson" <kent_johnson at skillsoft.com>
To: <tutor at python.org>
Sent: Wednesday, September 22, 2004 12:11 PM
Subject: Re: [Tutor] Re: Copy without overwrite?


> Hi Bernard,
>
> Congratulations on getting this working! Of course I have a couple of
> suggestions :-)
>
> - I notice you call shutil.copytree() if the destination directory is not
> there. This is fine but not necessary - you could just create the directory
> and call softcopy() again. That would make the program self-contained and
> maybe easier to understand - it wouldn't have the two different paths for
> recursion. OTOH you could consider the call to copytree() an optimization,
> since at that point you know you don't have to check for existence of the
> destination files anymore. Either way is fine, really.
>
> - If you do call copytree() you should change your exception handler. Just
> like softcopy(), copytree() catches IOError and wraps them in a
> shutil.Error. The data in the Error is a list of failures. So for the call
> to copytree(), instead of (or in addition to) catching IOError and creating
> a new error list entry, you should catch Error and extend your list with
> the list the Error contains:
>
>                                  try:
>                                          s.copytree( srcname, dstname )
>                                          print 'DONE'
>                                  except os.error, why:
>                                          print 'FAILED'
>                                          errors.append( ( srcname, dstname,
> why ) )
>                                  except (s.Error), why:
>                                          print 'FAILED'
>                                          errors.extend( why )
>
> Kent
>
> At 11:05 AM 9/22/2004 +0200, Bernard Lebel wrote:
> >Thanks to everyone!
> >
> >Attached is my final script, in txt format.
> >
> >
> >Bernard
> >
> >
> >
> >
> >_______________________________________________
> >Tutor maillist  -  Tutor at python.org
> >http://mail.python.org/mailman/listinfo/tutor
>
> _______________________________________________
> Tutor maillist  -  Tutor at python.org
> http://mail.python.org/mailman/listinfo/tutor
>
>




More information about the Tutor mailing list