From 78d011ded95ac9dec18e68699a8ebf4fb3dc8797 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20B=2E=20Brandenburg?= Date: Sat, 27 Mar 2010 20:09:34 -0400 Subject: Add CSV file writing helper. --- util.py | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'util.py') diff --git a/util.py b/util.py index b092858..480ae5f 100644 --- a/util.py +++ b/util.py @@ -1,4 +1,5 @@ import numpy as np +from tempfile import NamedTemporaryFile as Tmp def load_csv_file(fname, *args, **kargs): f = open(fname) @@ -7,6 +8,31 @@ def load_csv_file(fname, *args, **kargs): f.close() # don't leak file handles return data +def write_csv_file(fname, rows, header=None, width=None): + if fname is None: + f = Tmp() + else: + f = open(fname, 'w') + if width: + fmt = "%%%ds" % width + else: + fmt = "%s" + + if header: + f.write('#') + f.write(", ".join([fmt % str(x) for x in header])) + f.write('\n') + for row in rows: + f.write(' ') + f.write(", ".join([fmt % str(x) for x in row])) + f.write('\n') + if fname is None: + # keep it open + f.flush() + return f + else: + f.close() + def select(keep, rows): ok_rows = np.zeros(len(rows), dtype=bool) for i, row in enumerate(rows): -- cgit v1.2.2