code: def _sync_directories(from_directory, to_directory):
          
          if not os.path.exists(to_directory):
              os.mkdir(to_directory)
          for root, dirs, files in os.walk(from_directory):
              to_root = root.replace(from_directory, to_directory)
              for directory in dirs:
                  to_child_dir = os.path.join(to_root, directory)
                  if not os.path.exists(to_child_dir):
                      os.mkdir(to_child_dir)
              for fname in files:
                  from_file = os.path.join(root, fname)
                  to_file = os.path.join(to_root, fname)
                  with open(from_file, 'rb') as a, open(to_file, 'wb') as b:
                      b.write(a.read())
docs: Sync to_directory with from_directory by copying each file in
          to_directory with new contents. Files in to_directory will be
          overwritten by files of the same name in from_directory. We need to
          keep two copies of the log directory because otherwise TensorBoard
          picks up temp files from `aws s3 sync` and then stops reading the
          correct tfevent files. We walk the directory and copy each file
          individually because the directory that TensorBoard watches needs to
          always exist.
  
          Args:
              from_directory (str): The directory with updated files.
              to_directory (str): The directory to be synced.