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

Release files for pluckr 0.0.9

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for pluckr 0.0.9
File Size Uploaded
pluckr-0.0.9.tar.gz 3.7 kB Details

Release files / pluckr-0.0.9.tar.gz

Download URL pluckr-0.0.9.tar.gz
Size 3.7 kB
Tags Source
SHA-256 checksum
How to use checksums
aa7a2afff9517e4d1cf828ad8f4bbc449865166bc1f31b62c78dd3fcf8bb5a04
BLAKE2b-256 checksum
How to use checksums
fb306fde938b5956bb34f5e94b4dbfcc03024464861eebbce38f8449baafd331
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No

Release history Release notifications | RSS feed

This release

0.0.9 This release

1 release file

0.0.8

1 release file

0.0.7

1 release file

0.0.6

1 release file

0.0.5

1 release file

0.0.4

1 release file

0.0.3

1 release file

0.0.2

1 release file

0.0.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page