From fece3f556d8113f56181b35d655ed1acc65b113f Mon Sep 17 00:00:00 2001 From: Matthias Diener <mdiener@illinois.edu> Date: Fri, 28 Aug 2020 13:58:39 -0500 Subject: [PATCH] change lineterminator --- pytools/__init__.py | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) diff --git a/pytools/__init__.py b/pytools/__init__.py index 7ccb04a..44b3752 100644 --- a/pytools/__init__.py +++ b/pytools/__init__.py @@ -1561,16 +1561,31 @@ class Table: return "\n".join(lines) - def csv(self): - """Returns a string containing a CSV representation of the table.""" + def csv(self, dialect='excel', **fmtparams): + """Returns a string containing a CSV representation of the table. + + .. doctest :: + + >>> tbl = Table() + >>> tbl.add_row([1, ","]) + >>> tbl.add_row([10, 20]) + >>> print(tbl.csv()) + 1,"," + 10,20 + """ + import csv import io + # Default is '\r\n' + if not 'lineterminator' in fmtparams: + fmtparams['lineterminator'] = '\n' + output = io.StringIO() - writer = csv.writer(output) + writer = csv.writer(output, dialect, **fmtparams) writer.writerows(self.rows) - return output.getvalue().rstrip('\n') + return output.getvalue().rstrip(fmtparams['lineterminator']) def latex(self, skip_lines=0, hline_after=None): if hline_after is None: -- GitLab