annotate numerics/split_table.py @ 179:f63194f81f7d

stubbing table splitting
author Jeff Hammel <k0scist@gmail.com>
date Tue, 09 Aug 2016 14:03:33 -0700
parents
children 69543d62ae7a
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
179
f63194f81f7d stubbing table splitting
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
1 #!/usr/bin/env python
f63194f81f7d stubbing table splitting
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
2
f63194f81f7d stubbing table splitting
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
3 """
f63194f81f7d stubbing table splitting
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
4 split a CSV file with a header into parts
f63194f81f7d stubbing table splitting
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
5 """
f63194f81f7d stubbing table splitting
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
6
f63194f81f7d stubbing table splitting
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
7 # imports
f63194f81f7d stubbing table splitting
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
8 import chunk
f63194f81f7d stubbing table splitting
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
9 import sys
f63194f81f7d stubbing table splitting
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
10 import table
f63194f81f7d stubbing table splitting
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
11
f63194f81f7d stubbing table splitting
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
12 class SplitTableParser(table.TableParser):
f63194f81f7d stubbing table splitting
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
13
f63194f81f7d stubbing table splitting
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
14 def add_arguments(self):
f63194f81f7d stubbing table splitting
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
15 self.add_argument('input', type=argparse.FileType('r'),
f63194f81f7d stubbing table splitting
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
16 help="input CSV file")
f63194f81f7d stubbing table splitting
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
17 self.add_argument('-o', '--output', dest='output',
f63194f81f7d stubbing table splitting
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
18 type=argparse.FileType('w'), default=sys.stdout,
f63194f81f7d stubbing table splitting
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
19 help="output file to write to, or stdout by default")
f63194f81f7d stubbing table splitting
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
20 self.add_argument('-c', '--column', dest='columns', nargs='+',
f63194f81f7d stubbing table splitting
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
21 help="column names to output")
f63194f81f7d stubbing table splitting
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
22 self.add_argument('-v', '--verbose', dest='verbose',
f63194f81f7d stubbing table splitting
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
23 action='store_true', default=False,
f63194f81f7d stubbing table splitting
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
24 help="be verbose")
f63194f81f7d stubbing table splitting
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
25
f63194f81f7d stubbing table splitting
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
26
f63194f81f7d stubbing table splitting
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
27 def main(args=sys.argv[1:]):
f63194f81f7d stubbing table splitting
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
28 """CLI"""
f63194f81f7d stubbing table splitting
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
29
f63194f81f7d stubbing table splitting
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
30 # parse command line
f63194f81f7d stubbing table splitting
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
31 parser = SplitTableParser(description=__doc__)
f63194f81f7d stubbing table splitting
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
32 options = parser.parse_args(args)
f63194f81f7d stubbing table splitting
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
33
f63194f81f7d stubbing table splitting
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
34 # read CSV
f63194f81f7d stubbing table splitting
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
35 data = parser.read_table()
f63194f81f7d stubbing table splitting
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
36
f63194f81f7d stubbing table splitting
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
37 print 'hi'
f63194f81f7d stubbing table splitting
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
38
f63194f81f7d stubbing table splitting
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
39 if __name__ == '__main__':
f63194f81f7d stubbing table splitting
Jeff Hammel <k0scist@gmail.com>
parents:
diff changeset
40 main()