Skip to main content
Join the official 2019 Python Developers SurveyStart the survey!

TableLogger is a handy Python utility for logging tabular data into a console or a file.

Project description

TableLogger is a handy Python utility for logging tabular data into a console or a text file with little overhead.

Usage

from table_logger import TableLogger
tbl = TableLogger(columns='a,b,c,d')

tbl(1, 'Row1', datetime.now(), math.pi)
tbl(2, 'Row2', datetime.now(), 1/3)
tbl(3, 'Row3', datetime.now(), random.random())

Output:

+----------------------+----------------------+---------------------+----------------------+
|                    a | b                    | c                   |                    d |
|----------------------+----------------------+---------------------+----------------------|
|                    1 | Row1                 | 2015-12-28 21:13:46 |    3.141592653589793 |
|                    2 | Row2                 | 2015-12-28 21:13:46 |    0.333333333333333 |
|                    3 | Row3                 | 2015-12-28 21:13:46 |    0.854212894923849 |

Features

  • sane default formatting for basic python types
  • row number, timestamp and time delta columns
  • csv output
  • allows to adjust column width and format
  • python 2.7 and 3 support

Installation

PyPI:

$ pip install table-logger

GitHub:

$ git clone https://github.com/AleksTk/table-logger
$ cd table-logger
$ python setup.py install

Examples

Include row number, time-delta and timestamp columns

tbl = TableLogger(columns='data', rownum=True, time_delta=True, timestamp=True)
for e in 'abcde':
    time.sleep(random.randint(0, 3))
    tbl(e)

Output:

+-----------+----------------------------+-----------------+----------------------+
|       row | timestamp                  |      time delta | data                 |
|-----------+----------------------------+-----------------+----------------------|
|         1 | 2016-01-01 21:40:35.956815 |     0.000000000 | a                    |
|         2 | 2016-01-01 21:40:35.957315 |     0.000000000 | b                    |
|         3 | 2016-01-01 21:40:37.957569 |     2.000253916 | c                    |
|         4 | 2016-01-01 21:40:37.957569 |     0.000500202 | d                    |
|         5 | 2016-01-01 21:40:39.958323 |     2.000253916 | e                    |

Write to csv file

with open('log.csv', 'wb') as csvfile:
   tbl = TableLogger(file=csvfile, csv=True, columns='a,b')
   tbl('John "Smith"',  1200000.890)
   tbl('Tommy,Cache',   70000.125)

Output:

a,b
"John ""Smith""",1200000.890000
"Tommy,Cache",70000.125000

Specify custom column widths and formatters

tbl = TableLogger(columns='name,salary',
                  float_format='{:,.2f}'.format,
                  default_colwidth=15)
tbl('John Smith',  1200000.890)
tbl('Tommy Cache',   70000.125)

Output:

+-----------------+-----------------+
| name            |          salary |
|-----------------+-----------------|
| John Smith      |    1,200,000.89 |
| Tommy Cache     |       70,000.12 |

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for table-logger, version 0.3.6
Filename, size File type Python version Upload date Hashes
Filename, size table_logger-0.3.6-py3-none-any.whl (14.1 kB) File type Wheel Python version py3 Upload date Hashes View hashes
Filename, size table-logger-0.3.6.tar.gz (6.6 kB) File type Source Python version None Upload date Hashes View hashes

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page