code: def copytree(src, dst, symlinks=False, ignore=None):
      
      # http://stackoverflow.com/questions/1868714/how-do-i-copy-an-entire-directory-of-files-into-an-existing-directory-using-pyth
      if not os.path.exists(dst):
          os.makedirs(dst)
          shutil.copystat(src, dst)
      lst = os.listdir(src)
      if ignore:
          excl = ignore(src, lst)
          lst = [x for x in lst if x not in excl]
      for item in lst:
          s = os.path.join(src, item)
          d = os.path.join(dst, item)
          if symlinks and os.path.islink(s):
              if os.path.lexists(d):
                  os.remove(d)
              os.symlink(os.readlink(s), d)
              try:
                  st = os.lstat(s)
                  mode = stat.S_IMODE(st.st_mode)
                  os.lchmod(d, mode)
              except:
                  pass  # lchmod not available
          elif os.path.isdir(s):
              copytree(s, d, symlinks, ignore)
          else:
              shutil.copy2(s, d)
docs: copytree that works even if folder already exists