summaryrefslogtreecommitdiff
path: root/tools
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
commit675f6d1808fb208a6191a0b9da3cd64e2515b7d5 (patch)
tree2ab22dd8fa3cf99adc1a7936fd4751cf21b25206 /tools
parentfc9836679aae650a26d12f5c226c8948c2af39dd (diff)
downloadserverdata-675f6d1808fb208a6191a0b9da3cd64e2515b7d5.tar.gz
serverdata-675f6d1808fb208a6191a0b9da3cd64e2515b7d5.tar.bz2
serverdata-675f6d1808fb208a6191a0b9da3cd64e2515b7d5.tar.xz
serverdata-675f6d1808fb208a6191a0b9da3cd64e2515b7d5.zip
aligncsv: easy alignment with a script
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()
+
+
+
+