Skip to main content

A newer and more modern Unix column formatting tool.

Project description

This is a modern re-implementation of the venerable old column application available on most Unix / Linux systems today.

Why re-implement this ancient tool?

BSD column has been, for many, the tool that almost works for every situation where we want to pretty-print a delimited table in textual form. Unfortunately, it lacks two highly desirable features.

  1. It has no option to right-justify columns instead of left-justifying them.
  2. It has no option to specify the output delimiter, and has two spaces hardcoded.

Why not just modify the original code?

The original code is over 20 years old, is written in a cryptic C style which does not lend itself to easy modification, and uses the compiler-dependent wchar_t type is not actually wide enough for Unicode.

Example Usage & Output

Consider the following input file, named Sample.txt:

Benchmark,Count,Avg,StdDev,Median,Min,Max
Core 1 to Core 2,3000000,125,431.937128,122,87,294738
Core 1 to Core 3,3000000,128,58.326363,123,87,54313
Core 2 to Core 1,3000000,129,323.379763,123,87,291708
Core 2 to Core 3,3000000,128,45.726372,123,74,37875
Core 3 to Core 1,3000000,128,42.615930,123,87,44093
Core 3 to Core 2,3000000,128,172.090219,122,78,266052

Under traditional column, the output looks like this:

$ column -t -s, Sample.txt
Benchmark         Count    Avg  StdDev      Median  Min  Max
Core 1 to Core 2  3000000  125  431.937128  122     87   294738
Core 1 to Core 3  3000000  128  58.326363   123     87   54313
Core 2 to Core 1  3000000  129  323.379763  123     87   291708
Core 2 to Core 3  3000000  128  45.726372   123     74   37875
Core 3 to Core 1  3000000  128  42.615930   123     87   44093
Core 3 to Core 2  3000000  128  172.090219  122     78   266052

With column.py, the output looks like this with default options:

$ column.py -s, Sample.txt
Benchmark           Count  Avg      StdDev  Median  Min     Max
Core 1 to Core 2  3000000  125  431.937128     122   87  294738
Core 1 to Core 3  3000000  128   58.326363     123   87   54313
Core 2 to Core 1  3000000  129  323.379763     123   87  291708
Core 2 to Core 3  3000000  128   45.726372     123   74   37875
Core 3 to Core 1  3000000  128   42.615930     123   87   44093
Core 3 to Core 2  3000000  128  172.090219     122   78  266052

Project details


Download files

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

Filename, size & hash SHA256 hash help File type Python version Upload date
column.py-0.1.1.tar.gz (3.6 kB) Copy SHA256 hash SHA256 Source None

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