summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
Diffstat (limited to 'tools')
-rwxr-xr-xtools/aligncsv.py76
1 files changed, 76 insertions, 0 deletions
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<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()
+
+
+
+