text: # -*- coding: utf-8 -*-
  import os
  from shutil import copyfile
  
  
  def split_dataset(dataset_path: str, split_file: str) -> None:
      """
      Split the dataset according to the given splitting rules.
  
      Args:
          dataset_path (str): the path of the dataset.
          split_file (str): the path of the file containing the splitting rules.
      """
  
      with open(split_file, 'r') as f:
          lines = f.readlines()
          for line in lines:
              path = line.strip('\n').split(' ')[0]
              is_gallery = line.strip('\n').split(' ')[1]
              if is_gallery == '0':
                  src = os.path.join(dataset_path, path)
                  dst = src.replace(path.split('/')[0], 'query')
                  dst_index = len(dst.split('/')[-1])
                  dst_dir = dst[:len(dst) - dst_index]
                  if not os.path.isdir(dst_dir):
                      os.makedirs(dst_dir)
                  if not os.path.exists(dst):
                      # os.symlink(src, dst)
                      copyfile(src, dst)
              elif is_gallery == '1':
                  src = os.path.join(dataset_path, path)
                  dst = src.replace(path.split('/')[0], 'gallery')
                  dst_index = len(dst.split('/')[-1])
                  dst_dir = dst[:len(dst) - dst_index]
                  if not os.path.isdir(dst_dir):
                      os.makedirs(dst_dir)
                  if not os.path.exists(dst):
                      # os.symlink(src, dst)
                      copyfile(src, dst)
  