diff sqlex/model.py @ 9:834b920ae345 default tip

allow output of headers in csv
author Jeff Hammel <k0scist@gmail.com>
date Sat, 01 Apr 2017 15:11:34 -0700
parents 22fbe50d92e8
children
line wrap: on
line diff
--- a/sqlex/model.py	Sat Apr 01 13:01:57 2017 -0700
+++ b/sqlex/model.py	Sat Apr 01 15:11:34 2017 -0700
@@ -67,7 +67,7 @@
                             for row in data])
 
 
-    def table2csv(self, table, fp):
+    def table2csv(self, table, fp, header=False):
         """
         export `table` to `fp` file object in CSV format
         """
@@ -80,6 +80,13 @@
         sql = 'select * from {table}'.format(table=table)
         rows = self(sql)
 
+        if header:
+            # export header as first row, if specified
+            _header = self.columns(table).keys()
+            if _header:
+                _header[0] = '#{}'.format(_header[0])
+            rows.insert(0, _header)
+
         # decode unicde because the CSV module won't
         # http://stackoverflow.com/questions/22733642/how-to-write-a-unicode-csv-in-python-2-7
         rows = [[unicode(s).encode("utf-8") for s in row]