view numerics/split_table.py @ 180:69543d62ae7a

more split stubbing
author Jeff Hammel <k0scist@gmail.com>
date Tue, 09 Aug 2016 14:34:31 -0700
parents f63194f81f7d
children 4f474ceb9beb
line wrap: on
line source

#!/usr/bin/env python

"""
split a CSV file with a header into parts
"""

# imports
import argparse
import csv
import chunk
import sys
import table

class SplitTableParser(table.TableParser):

    def add_arguments(self):
        self.add_argument('input', type=argparse.FileType('r'),
                          help="input CSV file")
        self.add_argument('-o', '--output', dest='output',
                          type=argparse.FileType('w'), default=sys.stdout,
                          help="output file to write to, or stdout by default")
        self.add_argument('-c', '--column', dest='columns', nargs='+',
                          help="column names to output")
        self.add_argument('-v', '--verbose', dest='verbose',
                          action='store_true', default=False,
                          help="be verbose")


def main(args=sys.argv[1:]):
    """CLI"""

    # parse command line
    parser = SplitTableParser(description=__doc__)
    options = parser.parse_args(args)

    # read CSV
    data = parser.read_table()

    header = data[0].keys()

    for index, row in enumerate(data):
        print '{index}'.format(index=index)

        output_data = [list(header)]

if __name__ == '__main__':
    main()