From 675f6d1808fb208a6191a0b9da3cd64e2515b7d5 Mon Sep 17 00:00:00 2001 From: Stefan Beller Date: Wed, 5 Jan 2011 22:58:57 +0100 Subject: aligncsv: easy alignment with a script --- tools/aligncsv.py | 76 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100755 tools/aligncsv.py (limited to 'tools') diff --git a/tools/aligncsv.py b/tools/aligncsv.py new file mode 100755 index 00000000..69e1d871 --- /dev/null +++ b/tools/aligncsv.py @@ -0,0 +1,76 @@ +#!/usr/bin/python +# this formats a csv file to a serious whitespace intended format. + +import os +import sys + +tabs=not True + +fname = sys.argv[1] +if not os.path.exists(fname): + print "that file doesn't exist" + exit(0); + +f=open(fname,"r"); +lines=f.readlines() +f.close(); +length=0 + +for line in lines: + length=max(length, len(line.split(","))) + +print "# number of entries =",length +additionalspaces = 5 + +#setup text array +textarray=range(len(lines)+1) +for x in range(len(lines)+1): + textarray[x] = range(length) + +for x in range(length): + textarray[-1][x] = 0 + +#find the longest entry in each line in each position +for lineno in range(len(lines)): + sp=lines[lineno].split(",") + for pieceno in range(len(sp)): + sp[pieceno] = sp[pieceno].strip() + textarray[-1][pieceno] = max(len(sp[pieceno]),textarray[-1][pieceno]) + +if tabs: + #make it divisable by 8 (tabs work then) + for pieceno in range(length): + if textarray[-1][pieceno] %8: + textarray[-1][pieceno] = ((textarray[-1][pieceno]/8) *8) +8 + +for lineno in range(len(lines)): + sp=lines[lineno].split(",") + for pieceno in range(length): + textarray[lineno][pieceno] = "" + if pieceno