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.

Source Distribution

column.py-0.1.2.tar.gz (3.7 kB view hashes)

Uploaded Source

Built Distribution

column.py-0.1.2-py3-none-any.whl (3.7 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page