code: def copytree(src, dst, symlinks=False, ignore=None):
      
      if not os.path.exists(dst):
          os.mkdir(dst)
      try:
          for item in os.listdir(src):
              s = os.path.join(src, item)
              d = os.path.join(dst, item)
              if os.path.isdir(s):
                  shutil.copytree(s, d, symlinks, ignore)
              else:
                  shutil.copy2(s, d)
      except Exception as e:
          raise FolderExistsError("Folder already exists in %s" % dst)
docs: Function recursively copies from directory to directory.
  
      Args
      ----
      src (string): the full path of source directory
      dst (string): the full path of destination directory
      symlinks (boolean): the switch for tracking symlinks
      ignore (list): the ignore list