Creating a CSV file from an algorithm's output table
-
A handy snippet that dumps a TableData into a CSV file
# -*- coding: utf-8 -*- import numpy import os import s4l_v1.analysis as analysis def to_csv(file_path, table): import csv data = table.ToList() col_keys = [""] col_keys.extend( [k.replace(',', '') for k in table.ColumnKeys()] ) row_keys = [k.replace(',', '') for k in table.RowKeys()] with open(file_path, 'wt') as outcsv: writer = csv.writer(outcsv, delimiter=',', quotechar='|', quoting=csv.QUOTE_MINIMAL, lineterminator='\n') writer.writerow(col_keys) for i, key in enumerate(row_keys): row = [key, ] row.extend(data[i]) writer.writerow(row) print "File written to {}".format(file_path) if __name__ == '__main__': # ... Assume here code to evaluate a pipeline ... table = surface_average_J_evaluator.Outputs["Surface-Average Report [ICNIRP 1998]"].Data print( "Info: table is of type {}".format( type(data) ) ) to_csv( os.path.join(basedir, "icnirp1998.csv"), table)