summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorStefan Beller <stefanbeller@googlemail.com>2011-01-05 22:58:57 +0100
committerStefan Beller <stefanbeller@googlemail.com>2011-01-05 23:00:10 +0100
commitb514c052c006eeb8e4986bdd1f1026b132076b38 (patch)
treefc2f11025a30555dcc0578ee55e58181c55db9a9
parent49a9808faefad09a6d1320ceeb978a18ba1d0a2b (diff)
downloadtools-b514c052c006eeb8e4986bdd1f1026b132076b38.tar.gz
tools-b514c052c006eeb8e4986bdd1f1026b132076b38.tar.bz2
tools-b514c052c006eeb8e4986bdd1f1026b132076b38.tar.xz
tools-b514c052c006eeb8e4986bdd1f1026b132076b38.zip
aligncsv: easy alignment with a script
-rwxr-xr-xaligncsv.py76
1 files changed, 76 insertions, 0 deletions
diff --git a/aligncsv.py b/aligncsv.py
new file mode 100755
index 0000000..69e1d87
--- /dev/null
+++ b/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<len(sp):
+ sp[pieceno]= sp[pieceno].strip()
+ if pieceno<len(sp)-1:
+ sp[pieceno]= sp[pieceno] + ","
+ n=(textarray[-1][pieceno]-len(sp[pieceno])+additionalspaces)
+ if (tabs):
+ textarray[lineno][pieceno] = sp[pieceno]
+ textarray[lineno][pieceno] += "\t" *(n/8)
+ else:
+ textarray[lineno][pieceno] = " "*(n) + sp[pieceno]
+
+
+fname = sys.argv[2]
+if not os.path.exists(fname):
+ print "that file doesn't exist"
+ exit(0);
+else:
+ f=open(fname,"w");
+ for line in textarray[:-1]:
+ for piece in line:
+ f.write(piece)
+ f.write("\n")
+ f.close()
+
+
+
+