# HG changeset patch # User Jeff Hammel # Date 1412791948 25200 # Node ID 2cadb4349753258ed530918e44d97e9ab1d93609 # Parent f865bc9165930011bfc70a1b03f537305ae0c3f6 parse by columns diff -r f865bc916593 -r 2cadb4349753 numerics/read.py --- a/numerics/read.py Tue Oct 07 21:04:36 2014 -0700 +++ b/numerics/read.py Wed Oct 08 11:12:28 2014 -0700 @@ -85,6 +85,7 @@ class CSVParser(argparse.ArgumentParser): """CLI option parser""" + def __init__(self, **kwargs): kwargs.setdefault('description', __doc__) argparse.ArgumentParser.__init__(self, **kwargs) @@ -92,6 +93,9 @@ help="CSV files to read") self.add_argument('-+', '--add', dest='added_columns', nargs='+', help="append this column") + self.add_argument('-c', '--col', '--columns', dest='columns', + nargs='+', type=int, + help="column numbers to output, starting with 0") self.add_argument('-o', '--output', dest='output', type=argparse.FileType('a'), default=sys.stdout, help='output destination, or stdout') @@ -121,6 +125,10 @@ for row in data: row.extend(options.added_columns) + if options.columns: + rows = [[row[column] for column in options[columns]] + for row in rows] + # write CSV writer = csv.writer(options.output) for row in data: