#!/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 sys def main(): maxwidth = 100 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, maxwidth) count += 1 except EOFError: break print_end() def print_start(): print("") def print_line(line, color, maxwidth): print("".format(color)) fields = extract_fields(line) for field in fields: if not field: print("") else: number = field.replace(",", "") try: x = float(number) print("".format(round(x))) except ValueError: field = field.title() field = field.replace(" And ", " and ") if len(field) <= maxwidth: field = escape_html(field) else: field = "{0} ...".format( escape_html(field[:maxwidth])) print("".format(field)) print("") def extract_fields(line): fields = [] field = "" quote = None for c in line: if c in "\"'": if quote is None: # start of quoted string quote = c elif quote == c: # end of quoted string quote = None else: field += c # other quote inside quoted string continue if quote is None and c == ",": # end of a field fields.append(field) field = "" else: field += c # accumulating a field if field: fields.append(field) # adding the last field return fields def escape_html(text): text = text.replace("&", "&") text = text.replace("<", "<") text = text.replace(">", ">") return text def print_end(): print("
{0:d}{0}
") main()