diff options
| -rw-r--r-- | util.py | 10 |
1 files changed, 9 insertions, 1 deletions
| @@ -8,7 +8,8 @@ def load_csv_file(fname, *args, **kargs): | |||
| 8 | f.close() # don't leak file handles | 8 | f.close() # don't leak file handles |
| 9 | return data | 9 | return data |
| 10 | 10 | ||
| 11 | def write_csv_file(fname, rows, header=None, width=None): | 11 | def write_csv_file(fname, rows, header=None, width=None, |
| 12 | break_col=None): | ||
| 12 | if fname is None: | 13 | if fname is None: |
| 13 | f = Tmp() | 14 | f = Tmp() |
| 14 | else: | 15 | else: |
| @@ -22,10 +23,17 @@ def write_csv_file(fname, rows, header=None, width=None): | |||
| 22 | f.write('#') | 23 | f.write('#') |
| 23 | f.write(", ".join([fmt % str(x) for x in header])) | 24 | f.write(", ".join([fmt % str(x) for x in header])) |
| 24 | f.write('\n') | 25 | f.write('\n') |
| 26 | last_row = None | ||
| 25 | for row in rows: | 27 | for row in rows: |
| 28 | # Insert extra line breaks for Gnuplot plot3d plotting whenever | ||
| 29 | # the value of break_col changes. | ||
| 30 | if not last_row is None and not break_col is None: | ||
| 31 | if last_row[break_col] != row[break_col]: | ||
| 32 | f.write('\n') | ||
| 26 | f.write(' ') | 33 | f.write(' ') |
| 27 | f.write(", ".join([fmt % str(x) for x in row])) | 34 | f.write(", ".join([fmt % str(x) for x in row])) |
| 28 | f.write('\n') | 35 | f.write('\n') |
| 36 | last_row = row | ||
| 29 | if fname is None: | 37 | if fname is None: |
| 30 | # keep it open | 38 | # keep it open |
| 31 | f.flush() | 39 | f.flush() |
