code: def run(self, fnc_name, hdrs_usr):
          
          fnc = self.fncs[fnc_name]
          with open(self.fin) as fin_stream:
              for lnum, line in enumerate(fin_stream):
                  line = line.rstrip('\r\n') # chomp
                  # Obtain Data if headers have been collected from the first line
                  if self.hdr2idx:
                      self._init_data_line(fnc, lnum, line)
                  # Obtain the header
                  else:
                      self.do_hdr(line, hdrs_usr)
              if self.log is not None:
                  self.log.write("  {:9} data READ:  {}\n".format(len(self.ret_list), self.fin))
          return self.ret_list, self.hdr2idx
docs: Read csv/tsv file and return specified data in a list of lists.