code: def identify_sep(filepath):
      
      ext = os.path.splitext(filepath)[1].lower()
      allowed_exts = ['.csv', '.txt', '.tsv']
      assert ext in ['.csv', '.txt'], "Unexpected file extension {}. \
                                      Supported extensions {}\n filename: {}".format(
                                      ext, allowed_exts, os.path.basename(filepath))
      maybe_seps = ['|',
                    ';',
                    ',',
                    '\t',
                    ':']
  
      with open(filepath,'r') as fp:
          header = fp.__next__()
  
      count_seps_header = {sep: _count(sep, header) for sep in maybe_seps}
      count_seps_header = {sep: count for sep,
                           count in count_seps_header.items() if count > 0}
  
      if count_seps_header:
          return max(count_seps_header.__iter__(),
                     key=(lambda key: count_seps_header[key]))
      else:
          raise Exception("Couldn't identify the sep from the header... here's the information:\n HEADER: {}\n SEPS SEARCHED: {}".format(header, maybe_seps))
docs: Identifies the separator of data in a filepath.
      It reads the first line of the file and counts supported separators.
      Currently supported separators: ['|', ';', ',','\t',':']