#!/usr/bin/env python import sys import empty def csv_new(): e = empty.new() e.in_quote = False e.s = '' e.lst = [ [] ] def flush(): s = e.s e.s = '' if len( s ) >= 2 and s[ 0 ] == '"' and s[ -1 ] == '"': s = s[ 1 : -1 ] s = s.replace( '""', '"' ) e.lst[ -1 ].append( s ) def add_c( c ): if c == '\r': return # (^^; if not e.in_quote and c in ',\n': flush() if c == '\n': e.lst.append( [] ) return e.s += c if c == '"': e.in_quote = not e.in_quote def add_s( s ): s = s.strip() for c in s: add_c ( c ) return empty.add( e, locals() ) if __name__ == "__main__": f = sys.stdin s = f.read() csv = csv_new() csv.add_s( s ) csv.flush() print( csv.lst ) # EOF