Skip to main content

Print csv files in columnated format, either plain or as a Markdown or LaTeX table

Project description

csvprint

Build Status codecov

A command-line utility for pretty printing csv files and converting to other formats.

Installation

If Python 3 with the package manager pip is installed, doing pip3 install csvprint in your terminal should do the trick.

Development installation

With pipenv installed.

  1. Clone this repo
  2. Do pipenv install
  3. pipenv shell
  4. pip install -e .

Usage

csvprint [filename] prints a formatted table if filename is a comma separated file.

» cat imdb.csv
Title,Release Year,Estimated Budget
Shawshank Redemption,1994,$25 000 000
The Godfather,1972,$6 000 000
The Godfather: Part II,1974,$13 000 000
The Dark Knight,2008,$185 000 000
12 Angry Men,1957,$350 000

» csvprint imdb.csv
Title                  Release Year Estimated Budget
Shawshank Redemption   1994         $25 000 000
The Godfather          1972         $6 000 000
The Godfather: Part II 1974         $13 000 000
The Dark Knight        2008         $185 000 000
12 Angry Men           1957         $350 000

You can also pipe into csvprint:

» cat imdb.csv | csvprint
Title                  Release Year Estimated Budget
Shawshank Redemption   1994         $25 000 000
The Godfather          1972         $6 000 000
The Godfather: Part II 1974         $13 000 000
The Dark Knight        2008         $185 000 000
12 Angry Men           1957         $350 000

Options

Command Result
-a specify alignment (left or right) - see examples below
-c specify which columns to print
-h print help message
--markdown print as markdown
--latex print as latex table
--numeric [c1:d1] [c2:d2] ... specify decimal numbers for chosen numeric columns (c for column, d for digits)
--header add header decoration around the first line
-s 'char' file is delimited by char (instead of comma), tab for tab
-p [n] add a padding of n spaces for each column, on both sides
-d [string] specify the string to separate columns

Alignment example

There are three options for specifying alignment. One can use l or r for aligning all cells to the left or right, respectively. One can also specify a distinct alignment option for each column. Then the number of options will need to match the number of columns.

» csvprint imdb.csv -a l r r
Title                  Release Year Estimated Budget
Shawshank Redemption           1994      $25 000 000
The Godfather                  1972       $6 000 000
The Godfather: Part II         1974      $13 000 000
The Dark Knight                2008     $185 000 000
12 Angry Men                   1957         $350 000

Markdown example

Markdown output also supports left and right alignment.

» csvprint examples/imdb.csv --markdown -a l r r
Title                  | Release Year | Estimated Budget
:----------------------|-------------:|----------------:
Shawshank Redemption   |         1994 |      $25 000 000
The Godfather          |         1972 |       $6 000 000
The Godfather: Part II |         1974 |      $13 000 000
The Dark Knight        |         2008 |     $185 000 000
12 Angry Men           |         1957 |         $350 000

When rendered as HTML, this looks like

Title Release Year Estimated Budget
Shawshank Redemption 1994 $25 000 000
The Godfather 1972 $6 000 000
The Godfather: Part II 1974 $13 000 000
The Dark Knight 2008 $185 000 000
12 Angry Men 1957 $350 000

Numeric example

» csvprint examples/numeric.csv
measure1  measure2
1.2323    9000
1.299     9000001

» csvprint examples/numeric.csv --numeric 1:1 2:1
measure1  measure2
1.2       9000.0
1.3       9000001.0

Testing

Run pytest while in the root directory of this repository.

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

csvprint-0.7.1.tar.gz (7.7 kB view details)

Uploaded Source

Built Distribution

csvprint-0.7.1-py3-none-any.whl (8.0 kB view details)

Uploaded Python 3

File details

Details for the file csvprint-0.7.1.tar.gz.

File metadata

  • Download URL: csvprint-0.7.1.tar.gz
  • Upload date:
  • Size: 7.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.0.2 CPython/3.7.4 Darwin/19.4.0

File hashes

Hashes for csvprint-0.7.1.tar.gz
Algorithm Hash digest
SHA256 3c00f88f0fceade8c1f8e58255d1859c8f6ac04a81a2a15d448b457e6bbd5fef
MD5 7a99c2f5b2090d7ca420c8bfc2867363
BLAKE2b-256 9a716a33e307b4b94cdcc7a517c2c3baa188e04437d813b7d93005d1ea04a472

See more details on using hashes here.

File details

Details for the file csvprint-0.7.1-py3-none-any.whl.

File metadata

  • Download URL: csvprint-0.7.1-py3-none-any.whl
  • Upload date:
  • Size: 8.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.0.2 CPython/3.7.4 Darwin/19.4.0

File hashes

Hashes for csvprint-0.7.1-py3-none-any.whl
Algorithm Hash digest
SHA256 49bfc28db9961dce72ad056561c4549010d69e44c59f605db478884945dab371
MD5 9abd46d6300ce9e934f9adb03095e4e6
BLAKE2b-256 64ee3d025b7e1fc67656dcb090e30c106216a221949dda8a1a6ae6f65fd2a9c4

See more details on using hashes here.

Supported by

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