title: Using try/except or if/else when copying files
body: <p>I have two methods for copying a file, which one is the most pythonic/best version?</p>
  
  <p>In working through an object-oriented textbook I've been told (paraphrasing here) that it's best to avoid checking and handle 'exceptional situations' when they arise. Is the way I've used <code>try</code>/<code>except</code> in the second version valid?</p>
  
  <p>First version using <code>if</code>/<code>else</code>:</p>
  
  <pre><code>if os.path.exists(dest):
      print("\nCopying zipfile to {}".format(dest))
      shutil.copy(self.backup_zipfile_name, dest)
  else:
      print("Cannot find {}.".format(dest))
  </code></pre>
  
  <p>Second version using <code>try</code>/<code>except</code>:</p>
  
  <pre><code>try:
      shutil.copy(self.back_zipfile_name, dest)
  except FileNotFoundError:
      print("{!r} could not be found".format(dest))
  </code></pre>