示例#1
0
def format_table(table, format='csv', outputstream=sys.stdout, **extra_options):
    """table can be a table from dict_to_table() or a dictionary.
    The dictionary can have either a single value as a key (for a
    one-dimensional table) or 2-tuples (for two-dimensional tables).
    format is currently one of csv, tsv, tex, texbitmap, or asciiart.
    Values for texbitmap should be floats between 0 and 1 and the output
    will be the TeX code for a large-pixeled bitmap."""
    if isinstance(table, dict):
        table = dict_to_table(table)

    if format in ('csv', 'tsv'):
        import csv
        dialect = {'csv' : csv.excel, 'tsv' : csv.excel_tab}[format]
        writer = csv.writer(outputstream, dialect=dialect)
        for row in table:
            writer.writerow(row)
    elif format == 'tex':
        import TeXTable
        print >>outputstream, TeXTable.texify(table, has_header=True)
    elif format == 'texbitmap':
        import TeXTable
        extra_options.setdefault('has_header', True)
        print >>outputstream, TeXTable.make_tex_bitmap(table, **extra_options)
    elif format == 'asciiart':
        from texttable import Texttable
        texttable = Texttable(**extra_options)
        texttable.add_rows(table)
        print >>outputstream, texttable.draw()
    else:
        raise ValueError("Unsupported format: %r (supported formats: %s)" % \
            (format, ' '.join(supported_formats)))
示例#2
0
def format_table(table,
                 format='csv',
                 outputstream=sys.stdout,
                 **extra_options):
    """table can be a table from dict_to_table() or a dictionary.
    The dictionary can have either a single value as a key (for a
    one-dimensional table) or 2-tuples (for two-dimensional tables).
    format is currently one of csv, tsv, tex, texbitmap, or asciiart.
    Values for texbitmap should be floats between 0 and 1 and the
    output will be the TeX code for a large-pixeled bitmap. For
    format='texbitmap', you can pass the option has_header=True to make
    the first row look like a header.  If format='asciiart', you can
    pass the option center=True. Remaining extra_options are typically
    passed along to the actual renderers."""
    if isinstance(table, dict):
        table = dict_to_table(table)

    if format in ('csv', 'tsv'):
        import csv
        dialect = {'csv': csv.excel, 'tsv': csv.excel_tab}[format]
        writer = csv.writer(outputstream, dialect=dialect)
        for row in table:
            writer.writerow(row)
    elif format == 'tex':
        import TeXTable
        print >> outputstream, TeXTable.texify(table, has_header=True)
    elif format == 'texbitmap':
        import TeXTable
        extra_options.setdefault('has_header', True)
        print >> outputstream, TeXTable.make_tex_bitmap(table, **extra_options)
    elif format == 'asciiart':
        from texttable import Texttable
        center = extra_options.pop('center', False)
        deco = extra_options.pop('deco', None)
        texttable = Texttable(**extra_options)
        if deco is not None:
            deco = getattr(Texttable, deco.upper())
            texttable.set_deco(deco)
        num_cols = len(table[0])
        texttable.set_cols_dtype(['t'] * num_cols)
        texttable.add_rows(table)
        if center:
            texttable.set_cols_align(['l'] + ['c'] * (num_cols - 1))
        print >> outputstream, texttable.draw()
    elif format == 'tabulate':
        from tabulate import tabulate
        extra_options.setdefault('headers', 'firstrow')
        extra_options.setdefault('tablefmt', 'simple')
        print >> outputstream, tabulate(table, **extra_options)
    else:
        raise ValueError("Unsupported format: %r (supported formats: %s)" % \
            (format, ' '.join(supported_formats)))
示例#3
0
def format_table(table, format='csv', outputstream=sys.stdout):
    if format in ('csv', 'tsv'):
        import csv
        dialect = {'csv': csv.excel, 'tsv': csv.excel_tab}[format]
        writer = csv.writer(outputstream, dialect=dialect)
        for row in table:
            writer.writerow(row)
    elif format == 'tex':
        import TeXTable
        print >> outputstream, TeXTable.texify(table, has_header=True)
    elif format == 'texbitmap':
        import TeXTable
        print >> outputstream, TeXTable.make_tex_bitmap(table, has_header=True)
    else:
        raise ValueError("Unsupported format: %r (supported formats: %s)" % \
            (format, ' '.join(supported_formats)))
示例#4
0
def format_table(table, format='csv', outputstream=sys.stdout):
    if format in ('csv', 'tsv'):
        import csv
        dialect = {'csv' : csv.excel, 'tsv' : csv.excel_tab}[format]
        writer = csv.writer(outputstream, dialect=dialect)
        for row in table:
            writer.writerow(row)
    elif format == 'tex':
        import TeXTable
        print >>outputstream, TeXTable.texify(table, has_header=True)
    elif format == 'texbitmap':
        import TeXTable
        print >>outputstream, TeXTable.make_tex_bitmap(table, has_header=True)
    else:
        raise ValueError("Unsupported format: %r (supported formats: %s)" % \
            (format, ' '.join(supported_formats)))