LSSTApplications  1.1.2+25,10.0+13,10.0+132,10.0+133,10.0+224,10.0+41,10.0+8,10.0-1-g0f53050+14,10.0-1-g4b7b172+19,10.0-1-g61a5bae+98,10.0-1-g7408a83+3,10.0-1-gc1e0f5a+19,10.0-1-gdb4482e+14,10.0-11-g3947115+2,10.0-12-g8719d8b+2,10.0-15-ga3f480f+1,10.0-2-g4f67435,10.0-2-gcb4bc6c+26,10.0-28-gf7f57a9+1,10.0-3-g1bbe32c+14,10.0-3-g5b46d21,10.0-4-g027f45f+5,10.0-4-g86f66b5+2,10.0-4-gc4fccf3+24,10.0-40-g4349866+2,10.0-5-g766159b,10.0-5-gca2295e+25,10.0-6-g462a451+1
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