lang:python
#!/usr/bin/python
import sys
def rows(file, st, en):
ret = []
ret.append(["no"] + file.readline().strip().split(","))
for i in xrange(st): file.readline() # skip st lines
for i in xrange(st,en+1):
line = file.readline()
if line == "": break
line = line.strip()
ret.append(map(lambda x: x.strip('"'), [str(i)] + line.split(",")))
return ret
def printRows(rows):
wid = reduce(lambda a,b: [max(i,j) for i, j in zip(a,b)], map(lambda x: map(len,x), rows))
first = True
for row in rows:
print "|".join([("%%-%ds" % w) % v for w,v in zip(wid,row)])
if first:
print "+".join([("-" * w) for w in wid])
first = False
if __name__ == "__main__":
try:
st = 0
en = 1000*1000*1000
if len(sys.argv) == 1:
printRows(rows(sys.stdin, st, en))
else:
file = open(sys.argv[1])
if len(sys.argv) > 2: st = int(sys.argv[2])
if len(sys.argv) > 3: en = int(sys.argv[3])
printRows(rows(file, st, en))
except IOError:
pass