diff options
| author | Björn B. Brandenburg <bbb@cs.unc.edu> | 2010-03-27 20:09:34 -0400 |
|---|---|---|
| committer | Björn B. Brandenburg <bbb@cs.unc.edu> | 2010-03-27 20:09:34 -0400 |
| commit | 78d011ded95ac9dec18e68699a8ebf4fb3dc8797 (patch) | |
| tree | 6691705b56fc2d7dd6d8ecad51cd532dba7611d2 | |
| parent | c20875574e9c0107a39709319685bcfaa8f47fb5 (diff) | |
Add CSV file writing helper.
| -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): |
