docs: def print_output(self):
          """ Outputs final list of measures to screen a csv file.
  
          The .csv file created has the same name as the input file, with
          "vfclust_TYPE_CATEGORY" appended to the filename, where TYPE indicates
          the type of task performed done (SEMANTIC or PHONETIC) and CATEGORY
          indicates the category requirement of the stimulus (i.e. 'f' or 'animals'
          for phonetic and semantic fluency test, respectively.
          """
          if self.response_format == "csv":
              for key in self.measures:
                  if "TIMING_" in key:
                      self.measures[key] = "NA"
  
          if not self.quiet:
              print
              print self.type.upper() + " RESULTS:"
  
              keys = [e for e in self.measures if 'COUNT_' in e]
              keys.sort()
              print "Counts:"
              print_table([(entry, str(self.measures[entry])) for entry in keys])
  
              keys = [e for e in self.measures if 'COLLECTION_' in e]
              keys.sort()
              print
              print "Collection measures:"
              print_table([(entry, str(self.measures[entry])) for entry in keys])
  
              if self.response_format == "TextGrid":
                  keys = [e for e in self.measures if 'TIMING_' in e]
                  keys.sort()
                  print
                  print "Time-based measures:"
                  print_table([(entry, str(self.measures[entry])) for entry in keys])
  
          #write to CSV file
          if self.target_file:
              with open(self.target_file, 'w') as outfile:
                  header = ['file_id'] + \
                           [self.type + "_" + e for e in self.measures if 'COUNT_' in e] + \
                           [self.type + "_" + e for e in self.measures if 'COLLECTION_' in e] + \
                           [self.type + "_" + e for e in self.measures if 'TIMING_' in e]
                  writer = csv.writer(outfile, quoting=csv.QUOTE_MINIMAL)
                  writer.writerow(header)
                  #the split/join gets rid of the type appended just above
                  writer.writerow([self.measures["file_id"]] +
                                  [self.measures["_".join(e.split('_')[1:])] for e in header[1:]])