/
project.py
executable file
·38 lines (32 loc) · 1.09 KB
/
project.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
import argparse
import pysows
def parseOpts(args):
"""
args :: [str]
Argument string list
return :: argparse.Namespace
"""
parser = argparse.ArgumentParser(
description="Project a record list as an input stream.")
pysows.setVersion(parser)
parser.add_argument("-g", "--groups", dest="group_indexes",
metavar='COLUMNS', default='0',
help="Column index list separated by comma. (default: 0)")
parser.add_argument("-s", "--separator", dest="separator",
metavar='SEP', default=None,
help="Record separator. (default spaces)")
return parser.parse_args(args)
def doMain():
args = parseOpts(sys.argv[1:])
idxL = pysows.getTypedColumnIndexList(args.group_indexes)
for rec in pysows.recordReader(sys.stdin, args.separator):
pysows.printList(pysows.projectConv(idxL, rec))
print
if __name__ == "__main__":
try:
doMain()
except Exception, e:
pysows.exitWithError(e)