def tail(fn, cols=[0], comment='#'): """Extract last data (to continue simulation) """ out = [] for raw_line in fn: line = raw_line.strip('\n') if util.parsable(line, comment): out = line.split(' ') for i in range(len(out)): out[i] = float(out[i]) return out[:len(cols)]
def extractData(fn, cols=[0], comment='#'): """Data extraction function callback must be a function object which will be called when the function read fn. callback function signature: def callback(data) where data is a list with size 8 >>> extractData(['# comment', '10 10 10']) [[10.0]] >>> extractData(['# comment', '10 12 13'], [0, 1, 2]) [[10.0], [12.0], [13.0]] """ out = [] for c in cols: out.append([]) for raw_line in fn: line = raw_line.strip('\n') if util.parsable(line, comment): nums = line.split(' ') for i in range(len(out)): out[i].append(float(nums[cols[i]])) return out