Skip to main content

Swiss Army csv: command-line tools to manipulate csv-formatted data

Project description

sacsv: Swiss Army csv

Swiss Army csv (based on Andrew Toskin's photo distributed under CC BY-SA 4.0)

This Python package provides an assortment of command-line tools to manipulate csv-formatted data. The tools are:

  • csv2jsonl: converts csv input into jsonlines
  • csvaddrandom: adds a column with a random number
  • csvadduniqueid: adds a column with a unique record identifier
  • csvaggregate: applies an arbitrary Python function to every value of a column, possibly within groups
  • csvappend: appends two or more csv files
  • csvdropdups: drops duplicate records
  • csvfindsortkey: attempts to find the column that the input is sorted by
  • csvkeepmax: keeps the record that has the maximum value in a column
  • csvleftjoin: merges two csv files
  • csvop: applies an arbitrary Python function to every record and saves the return value in a new column
  • csvparallel: parallelizes arbitrary commands that read a csv input and write a csv output
  • csvrename: changes the name of a column
  • csvreorder: changes the order of columns
  • csvsed: applies a substitution rule, using regular expressions, to every value of a column
  • csvsort: sorts the input
  • csvtranspose: transposes the input
  • fw2csv: converts fixed-width input, potentially with multi-line records, into csv
  • longcsv2wide: converts the input from long to wide form
  • widecsv2long: converts the input from wide to long form

Illustration of csvparallel executing f.py in 8 jobs

Installation

To install this package using uv, type

uv tool install sacsv

or using pip,

pip install git+https://github.com/gn0/sacsv

or, alternatively,

git clone https://github.com/gn0/sacsv
pip install ./sacsv

Author

Gabor Nyeki. Contact information is on http://www.gabornyeki.com/.

License

This package is licensed under the Creative Commons Attribution 4.0 International License: http://creativecommons.org/licenses/by/4.0/.

The picture at the top of this README is based on Andrew Toskin's 2014 photo which is distributed under CC BY-SA 4.0.

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

sacsv-1.6.0.tar.gz (13.9 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

sacsv-1.6.0-py3-none-any.whl (22.4 kB view details)

Uploaded Python 3

File details

Details for the file sacsv-1.6.0.tar.gz.

File metadata

  • Download URL: sacsv-1.6.0.tar.gz
  • Upload date:
  • Size: 13.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.12 {"installer":{"name":"uv","version":"0.10.12","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for sacsv-1.6.0.tar.gz
Algorithm Hash digest
SHA256 a940518363d4358e1c7847be2e80866c6c4eb99336d05252b3480276a9952121
MD5 d748281a083ffbb3d87e86946e415c4e
BLAKE2b-256 57fc2d6dcfd6f540728f4f83d87864b48d6cc959aa005baddca3c4fab4568ac1

See more details on using hashes here.

File details

Details for the file sacsv-1.6.0-py3-none-any.whl.

File metadata

  • Download URL: sacsv-1.6.0-py3-none-any.whl
  • Upload date:
  • Size: 22.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.10.12 {"installer":{"name":"uv","version":"0.10.12","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for sacsv-1.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 e15cbfe94e3541bb55ec4334c234ccbcdbbdaca3faf09b1d17e9356d7ddab4fb
MD5 76a49cbf02c0b8c0e39a4675b1145667
BLAKE2b-256 09e74b143dbd51a2ef87d92a145bb2f1462890e4f2932aa53a49d1f626d0aa59

See more details on using hashes here.

Supported by

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