#!/usr/bin/env python3 # Copyright (c) 2008-11 Qtrac Ltd. All rights reserved. # This program or module is free software: you can redistribute it and/or # modify it under the terms of the GNU General Public License as published # by the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. It is provided for educational # purposes and is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. import optparse import sys import xml.sax.saxutils def main(): parser = optparse.OptionParser() parser.add_option("-w", "--maxwidth", dest="maxwidth", type="int", help=("the maximum number of characters that can be " "output to string fields [default: %default]")) parser.add_option("-f", "--format", dest="format", help=("the format used for outputting numbers " "[default: %default]")) parser.set_defaults(maxwidth=100, format=".0f") opts, args = parser.parse_args() print_start() count = 0 while True: try: line = input() if count == 0: color = "lightgreen" elif count % 2: color = "white" else: color = "lightyellow" print_line(line, color, opts.maxwidth, opts.format) count += 1 except EOFError: break print_end() def print_start(): print("
{{0:{0}}} | ".format(format) fields = extract_fields(line) for field in fields: if not field: print("") else: number = field.replace(",", "") try: x = float(number) print(numberFormat.format(x)) except ValueError: field = field.title() field = field.replace(" And ", " and ") if len(field) <= maxwidth: field = xml.sax.saxutils.escape(field) else: field = "{0} ...".format( xml.sax.saxutils.escape(field[:maxwidth])) print(" | {0} | ".format(field)) print("