Skip to content

bahostetterlewis/tableful

Repository files navigation

tableful

Pretty tables for various python iterables

example:

>>>d = {"First":["I'm data", "I'm other Data"], "Second":["I'm better data", "I'm the best data"]}
>>>tableful.TablefulOfDict(d)
+--------------+-----------------+
|    First     |     Second      |
+--------------+-----------------+
|   I'm data   | I'm better data |
|I'm other Data|I'm the best data|
+--------------+-----------------+

>>>a = (("First", "Second"), ("I'm data", "I'm better data"), ("I'm other Data", "I'm the best data"))
>>>tableful.Tableful(a)
+--------------+-----------------+
|    First     |     Second      |
+--------------+-----------------+
|   I'm data   | I'm better data |
|I'm other Data|I'm the best data|
+--------------+-----------------+

As you can see, they both have the same output.

Dicts treat keys as headers and their iterable values as the column data. To preserve order in a dict use an OrderedDict. Non dict iterables use the first inner iterable as the headers, and each of the following as rows.

Easy interface - 2 functions

TablefulOfDict() - Prints a dict in a tableful way.

Keyword args:

  • file - an optional file like object that can be written

Tableful() - Prints an iterable in a tableful way.

Keyword args:

  • file - an optional file like object that can be written
  • headers - an optional headers iterable that will be used in place of the main iterables embedded headers

Recipies

  • Tableful CSV
>>>from csv import DictReader
>>>from tableful import TablefulOfDict
>>>from collections import defaultdict
>>>table = defaultdict(list)
>>>with open('my_csv.csv', 'r') as f:
...   for dictionary in DictReader(f):
...       for key,value in dictionary.items():
...           table[key].append(value)
...
>>>with open('my_output_file.txt', 'w') as f:
...    TablefulOfDict(table, file=f)
...
>>>

About

Pretty tables for various python iterables

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages