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
Metadata
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)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| pluckr-0.0.9.tar.gz | 3.7 kB | Without provenance | Details for pluckr-0.0.9.tar.gz |
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 |
Security for pluckr 0.0.9
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.