diff --git a/processing/pre/geom_fromTable.py b/processing/pre/geom_fromTable.py index 86aa7f84e..f6c9ba38e 100755 --- a/processing/pre/geom_fromTable.py +++ b/processing/pre/geom_fromTable.py @@ -2,6 +2,7 @@ import os import sys +from io import StringIO from optparse import OptionParser import numpy as np diff --git a/python/damask/table.py b/python/damask/table.py index 02c1e6e5c..a78ec1f06 100644 --- a/python/damask/table.py +++ b/python/damask/table.py @@ -77,14 +77,21 @@ class Table(): f = fname f.seek(0) - header,keyword = f.readline().split() - if keyword == 'header': - header = int(header) + try: + N_comment_lines,keyword = f.readline().split() + if keyword != 'header': + raise TypeError else: - raise TypeError - - comments = [f.readline()[:-1] for i in range(1,header)] + comments = [f.readline().strip() for i in range(1,int(N_comment_lines))] labels = f.readline().split() + except TypeError: + f.seek(0) + comments = [] + line = f.readline().strip() + while line.startswith('#'): + comments.append(line.lstrip('#').lstrip()) + line = f.readline().strip() + labels = line.split() shapes = {} for label in labels: @@ -313,7 +320,7 @@ class Table(): self.shapes[key] = other.shapes[key] - def to_ASCII(self,fname): + def to_ASCII(self,fname,new=False): """ Store as plain text file. @@ -335,13 +342,16 @@ class Table(): labels += ['{}:{}_{}'.format('x'.join([str(d) for d in self.shapes[l]]),i+1,l) \ for i in range(np.prod(self.shapes[l]))] - header = ['{} header'.format(len(self.comments)+1)] \ - + self.comments \ - + [' '.join(labels)] + if new: + header = ['# {}'.format(comment) for comment in self.comments] + else: + header = ['{} header'.format(len(self.comments)+1)] \ + + self.comments \ try: f = open(fname,'w') except TypeError: f = fname - for line in header: f.write(line+'\n') + + for line in header + [' '.join(labels)]: f.write(line+'\n') self.data.to_csv(f,sep=' ',index=False,header=False)