LSSTApplications  8.0.0.0+107,8.0.0.1+13,9.1+18,9.2,master-g084aeec0a4,master-g0aced2eed8+6,master-g15627eb03c,master-g28afc54ef9,master-g3391ba5ea0,master-g3d0fb8ae5f,master-g4432ae2e89+36,master-g5c3c32f3ec+17,master-g60f1e072bb+1,master-g6a3ac32d1b,master-g76a88a4307+1,master-g7bce1f4e06+57,master-g8ff4092549+31,master-g98e65bf68e,master-ga6b77976b1+53,master-gae20e2b580+3,master-gb584cd3397+53,master-gc5448b162b+1,master-gc54cf9771d,master-gc69578ece6+1,master-gcbf758c456+22,master-gcec1da163f+63,master-gcf15f11bcc,master-gd167108223,master-gf44c96c709
LSSTDataManagementBasePackage
csvFileWriter.py
Go to the documentation of this file.
1 import gzip
2 import re
3 import lsst.daf.base as dafBase
4 
5 class CsvFileWriter(object):
6  def __init__(self, path, overwrite=True, compress=True):
7  if compress:
8  self.f = gzip.open(path + ".gz", "w" if overwrite else "a")
9  else:
10  self.f = open(path, "w" if overwrite else "a")
11 
12  def __del__(self):
13  self.f.close()
14 
15  def flush(self):
16  self.f.flush()
17 
18  def quote(self, value):
19  if value is None:
20  return '\N'
21  if isinstance(value, float):
22  return "%.17g" % (value,)
23  if isinstance(value, str):
24  value = re.sub(r'"', r'\"', value)
25  return '"' + value.strip() + '"'
26  if isinstance(value, dafBase.DateTime):
27  value = value.toString()
28  return '"' + value[0:10] + ' ' + value[11:19] + '"'
29  return str(value)
30 
31  def write(self, *fields):
32  print >>self.f, ",".join([self.quote(field) for field in fields])
Class for handling dates/times, including MJD, UTC, and TAI.
Definition: DateTime.h:58