Mercurial > hg > numerics
annotate numerics/write.py @ 138:488cb433576c
add d3 from http://d3js.org/d3.v3.min.js
author | Jeff Hammel <k0scist@gmail.com> |
---|---|
date | Sat, 21 Mar 2015 14:54:38 -0700 |
parents | 8bfa28ff74ce |
children |
rev | line source |
---|---|
79
c70ef55b6141
add some silly serialization thing
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
1 # -*- coding: utf-8 -*- |
c70ef55b6141
add some silly serialization thing
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
2 |
c70ef55b6141
add some silly serialization thing
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
3 """ |
c70ef55b6141
add some silly serialization thing
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
4 serialization (CSV) |
c70ef55b6141
add some silly serialization thing
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
5 """ |
c70ef55b6141
add some silly serialization thing
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
6 |
c70ef55b6141
add some silly serialization thing
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
7 # imports |
c70ef55b6141
add some silly serialization thing
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
8 import csv |
c70ef55b6141
add some silly serialization thing
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
9 |
c70ef55b6141
add some silly serialization thing
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
10 # module globals |
c70ef55b6141
add some silly serialization thing
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
11 __all__ = ['CSVWriter'] |
c70ef55b6141
add some silly serialization thing
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
12 string = (str, unicode) |
c70ef55b6141
add some silly serialization thing
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
13 |
c70ef55b6141
add some silly serialization thing
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
14 class CSVWriter(object): |
c70ef55b6141
add some silly serialization thing
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
15 """CSV writer interface""" |
c70ef55b6141
add some silly serialization thing
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
16 |
c70ef55b6141
add some silly serialization thing
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
17 def __init__(self, f, mode='a'): |
c70ef55b6141
add some silly serialization thing
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
18 """ |
c70ef55b6141
add some silly serialization thing
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
19 f -- file path or object |
c70ef55b6141
add some silly serialization thing
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
20 """ |
c70ef55b6141
add some silly serialization thing
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
21 |
c70ef55b6141
add some silly serialization thing
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
22 if isinstance(f, string): |
c70ef55b6141
add some silly serialization thing
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
23 f = open(f, mode) |
c70ef55b6141
add some silly serialization thing
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
24 self.f = f |
c70ef55b6141
add some silly serialization thing
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
25 self.writer = csv.writer(f) |
c70ef55b6141
add some silly serialization thing
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
26 |
80 | 27 def writerow(self, *row): |
79
c70ef55b6141
add some silly serialization thing
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
28 self.writer.writerow(row) |
c70ef55b6141
add some silly serialization thing
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
29 self.f.flush() |
c70ef55b6141
add some silly serialization thing
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
30 __call__ = writerow |
c70ef55b6141
add some silly serialization thing
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
31 |
c70ef55b6141
add some silly serialization thing
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
32 def write(self, rows): |
c70ef55b6141
add some silly serialization thing
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
33 for row in rows: |
c70ef55b6141
add some silly serialization thing
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
34 self(*row) |
c70ef55b6141
add some silly serialization thing
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
35 |
c70ef55b6141
add some silly serialization thing
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
36 def close(self): |
c70ef55b6141
add some silly serialization thing
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
37 if self.f is not None: |
c70ef55b6141
add some silly serialization thing
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
38 self.f.close() |
c70ef55b6141
add some silly serialization thing
Jeff Hammel <k0scist@gmail.com>
parents:
diff
changeset
|
39 __del__ = close |