Source code for paws.core.operations.IO.CSV.WriteArrayCSV
from collections import OrderedDict
import copy
import os
import numpy as np
from ... import Operation as opmod
from ...Operation import Operation
inputs=OrderedDict(
array=None,
headers=None,
dir_path=None,
filename=None,
filetag='')
outputs=OrderedDict(
file_path=None,
filename=None)
[docs]class WriteArrayCSV(Operation):
"""Write a 2d array to a csv file"""
def __init__(self):
super(WriteArrayCSV, self).__init__(inputs, outputs)
self.input_doc['array'] = 'any 2d array'
self.input_doc['headers'] = 'list of string headers (optional)- one header for each column of array'
self.input_doc['dir_path'] = 'the path to the destination directory'
self.input_doc['filename'] = 'the name of the file to be saved- no extension is expected'
self.input_doc['filetag'] = 'tag appended to filename- no extension is expected'
self.output_doc['file_path'] = 'the path to the finished csv file: dir_path+filename+filetag+.csv'
self.output_doc['file_path'] = 'the name of the output csv: filename+filetag'
self.input_datatype['headers'] = 'list'
self.input_datatype['dir_path'] = 'str'
self.input_datatype['filename'] = 'str'
self.input_datatype['filetag'] = 'str'
[docs] def run(self):
a = self.inputs['array']
h = self.inputs['headers']
p = self.inputs['dir_path']
fnm = self.inputs['filename']
tag = self.inputs['filetag']
csv_path = os.path.join(p,self.inputs['filename']+tag)
self.outputs['file_path'] = csv_path
self.outputs['filename'] = fnm+tag
if h is not None:
h_str = ''
for i in range(len(h)-1):
h_str += h[i] + ', '
h_str = h_str+h[-1]
np.savetxt(csv_path, a, delimiter=',', newline=os.linesep, header=h_str)
else:
np.savetxt(csv_path, a, delimiter=',', newline=os.linesep)