aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBjörn B. Brandenburg <bbb@cs.unc.edu>2010-03-27 20:09:34 -0400
committerBjörn B. Brandenburg <bbb@cs.unc.edu>2010-03-27 20:09:34 -0400
commit78d011ded95ac9dec18e68699a8ebf4fb3dc8797 (patch)
tree6691705b56fc2d7dd6d8ecad51cd532dba7611d2
parentc20875574e9c0107a39709319685bcfaa8f47fb5 (diff)
Add CSV file writing helper.
-rw-r--r--util.py26
1 files changed, 26 insertions, 0 deletions
diff --git a/util.py b/util.py
index b092858..480ae5f 100644
--- a/util.py
+++ b/util.py
@@ -1,4 +1,5 @@
1import numpy as np 1import numpy as np
2from tempfile import NamedTemporaryFile as Tmp
2 3
3def load_csv_file(fname, *args, **kargs): 4def load_csv_file(fname, *args, **kargs):
4 f = open(fname) 5 f = open(fname)
@@ -7,6 +8,31 @@ def load_csv_file(fname, *args, **kargs):
7 f.close() # don't leak file handles 8 f.close() # don't leak file handles
8 return data 9 return data
9 10
11def write_csv_file(fname, rows, header=None, width=None):
12 if fname is None:
13 f = Tmp()
14 else:
15 f = open(fname, 'w')
16 if width:
17 fmt = "%%%ds" % width
18 else:
19 fmt = "%s"
20
21 if header:
22 f.write('#')
23 f.write(", ".join([fmt % str(x) for x in header]))
24 f.write('\n')
25 for row in rows:
26 f.write(' ')
27 f.write(", ".join([fmt % str(x) for x in row]))
28 f.write('\n')
29 if fname is None:
30 # keep it open
31 f.flush()
32 return f
33 else:
34 f.close()
35
10def select(keep, rows): 36def select(keep, rows):
11 ok_rows = np.zeros(len(rows), dtype=bool) 37 ok_rows = np.zeros(len(rows), dtype=bool)
12 for i, row in enumerate(rows): 38 for i, row in enumerate(rows):