code: def load_delimited(filename, converters, delimiter=r'\s+'):
      r
      n_columns = len(converters)
      columns = tuple(list() for _ in range(n_columns))
      splitter = re.compile(delimiter)
      with _open(filename, mode='r') as input_file:
          for row, line in enumerate(input_file, 1):
              data = splitter.split(line.strip(), n_columns - 1)
              if n_columns != len(data):
                  raise ValueError('Expected {} columns, got {} at '
                                   '{}:{:d}:\n\t{}'.format(n_columns, len(data),
                                                           filename, row, line))
              for value, column, converter in zip(data, columns, converters):
                  try:
                      converted_value = converter(value)
                  except:
                      raise ValueError("Couldn't convert value {} using {} "
                                       "found at {}:{:d}:\n\t{}".format(
                                           value, converter.__name__, filename,
                                           row, line))
                  column.append(converted_value)
      if n_columns == 1:
          return columns[0]
      else:
          return columns