Skip to content
Python Makefile
Find file
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.
bin
csvfilter
fixtures
tests
.gitignore
.travis.yml
MANIFEST.in
README.rst
TODO
release.sh
requirements.txt
setup.py

README.rst

csvfilter - Simple CSV filtering

A simple wrapper around Python's CSV module to provide a command-line tool for filtering columns from a CSV file. This is useful as standard tools like awk don't account for the quoting and escaping used in CSV files. It's a bit like cut but for CSVs.

Install

From PyPi:

pip install csvfilter

Use

Pluck fields 1, 3 and 5 from in.csv:

csvfilter -f 1,3,5 in.csv > out.csv

Pluck all fields apart from column 2 from STDIN:

cat in.csv | csvfilter -f 2 -i > out.csv

Convert pipe-separated file to comma-separated (default-separated output is comma-separated):

csvfilter -d"|" in.psv > out.csv

Skip the header row:

cat in.csv | csvfilter --skip=1

As you can see, CSV data can be supplied through STDIN or by running csvfilter directly on a file.

Help is in the usual place:

$ csvfilter --help

Usage: csvfilter [options] [inputfile]

Source: https://github.com/codeinthehole/csvfilter/

Options:
-h, --help            show this help message and exit
-f FIELDS, --fields=FIELDS
                        Specify which fields to pluck
-s SKIP, --skip=SKIP  Number of rows to skip
-d DELIMITER, --delimiter=DELIMITER
                        Delimiter of incoming CSV data
-i, --inverse         Invert the filter - ie drop the selected fields
--out-delimiter=OUT_DELIMITER
                        Delimiter to use for output
--out-quotechar=OUT_QUOTECHAR
                        Quote character to use for output

Contribute

After cloning, install the testing requirements:

pip install -r requirements.txt

Install the package in 'develop' mode to bring the executable onto your path:

./setup.py develop

Run the tests with:

nosetests

and use the fixture files:

cat fixtures/au.csv | csvfilter -f 3,1,2 -s 1
csvfilter fixutres/au.csv -f 1,2 -i
Something went wrong with that request. Please try again.