diff options
Diffstat (limited to 'util.py')
-rw-r--r-- | util.py | 26 |
1 files changed, 26 insertions, 0 deletions
@@ -1,4 +1,5 @@ | |||
1 | import numpy as np | 1 | import numpy as np |
2 | from tempfile import NamedTemporaryFile as Tmp | ||
2 | 3 | ||
3 | def load_csv_file(fname, *args, **kargs): | 4 | def 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 | ||
11 | def 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 | |||
10 | def select(keep, rows): | 36 | def 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): |