code: def split_filename(file_name):
      """
      split `file_name` into folder path name, basename, and extension name.
  
      :param file_name:
      :return:
      """
      pth = os.path.dirname(file_name)
      fname = os.path.basename(file_name)
  
      ext = None
      for special_ext in FILE_EXTENSIONS:
          ext_len = len(special_ext)
          if fname[-ext_len:].lower() == special_ext:
              ext = fname[-ext_len:]
              fname = fname[:-ext_len] if len(fname) > ext_len else ""
              break
      if not ext:
          fname, ext = os.path.splitext(fname)
      return pth, fname, ext
  
imports: from __future__ import absolute_import, print_function, unicode_literals
  import errno
  import importlib
  import logging
  import os
  import re
  import sys
  import warnings
  import nibabel
  import numpy
  import pandas
  import scipy.ndimage
  import tensorflow
  from tensorflow.core.framework import summary_pb2
  from niftynet.io.image_loader import load_image_obj
  from niftynet.utilities.niftynet_global_config import NiftyNetGlobalConfig
  from niftynet.utilities.util_import import require_module
label_desc: Use image node_id 15 for calling a global function with example usage: split_filename(file_name) and returns: pth,  fname,  ext