Skip to main content

Pluck columns from csv files in the commandline. Like cut or awk, but without choking on delimiter escaping.

install

pip install pluckr. Done.

usage

Grab columns 2 and 3 from stdin (-f is one-indexed):

pluckr -f 2,3 < sample1.csv

Or straight from a file:

pluckr -f 2,1 sample1.csv

Your requested order is retained:

pluckr -f 1,2 sample1.csv != pluckr -f 2,1 sample1.csv

You can use Python’s negative indices… grab the first and last cols:

pluckr -f 1,-1 sample1.csv

And you can mix in ranges for column selection:

pluckr -f 2,4-6,9 sample1.csv

Can’t be sure which columns exist or what their indices are?

pluckr –names sample1.csv

Fields that don’t exist (e.g. -f11111) will be ignored.

Preprended line numbers can be helpful:

cat sample1.csv | pluckr –line-numbers

Skip header row(s):

cat sample1.csv | pluckr -s1

Grab all but the 2nd column (drop columns instead of selecting them):

pluckr -f 1 -i < sample2.csv

Read (and write) various delimiters:

pluckr -d, –out-delimiter=| < with-commas.csv > with-pipes.csv

Note that passing tabs as arguments can be awkward; in a pinch, use:

pluckr -d $’t’

help

Via –help:

usage: pluckr [-h] [-f FIELDS] [-i] [-d DELIMITER] [-q QUOTECHAR] [-s SKIP]

[-l] [-n] [infile]

Grab columns from csv input. http://github.com/philadams/pluckr

positional arguments:

infile input file (.csv)

optional arguments:
-h, --help

show this help message and exit

-f FIELDS

ordered list of columns to retain; one-indexed

-i, --inverse

invert column retention: drop those in -f

-d DELIMITER, --delimiter DELIMITER

field delimiter when reading infile

-q QUOTECHAR, --quotechar QUOTECHAR

field quotechar when reading infile

-s SKIP, --skip SKIP

number of rows to skip

-l, --line-numbers

prepend line numbers to output

-n, --names

print column names; assumes one header row

tests

This project uses [roundup](https://github.com/bmizerany/roundup) for testing. Run tests with make test.

future

  • allow -f to take columns by name when there’s a header row?

  • implement –out-x for output delimiters etc.

  • json output? or, contribute a cli to kennethreitz/tablib

  • add out delimiter support

  • add out quotechar support

Download files

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

Source Distribution

pluckr-0.0.9.tar.gz (3.7 kB view details)

Uploaded Source

File details

Details for the file pluckr-0.0.9.tar.gz.

File metadata

  • Download URL: pluckr-0.0.9.tar.gz
  • Upload date:
  • Size: 3.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for pluckr-0.0.9.tar.gz
Algorithm Hash digest
SHA256 aa7a2afff9517e4d1cf828ad8f4bbc449865166bc1f31b62c78dd3fcf8bb5a04
MD5 b204ba2601d27f58ff958dba691c6f2c
BLAKE2b-256 fb306fde938b5956bb34f5e94b4dbfcc03024464861eebbce38f8449baafd331

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

0.0.9 This release

1 file

0.0.8

1 file

0.0.7

1 file

0.0.6

1 file

0.0.5

1 file

0.0.4

1 file

0.0.3

1 file

0.0.2

1 file

0.0.1

1 file

Supported by

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