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

Each tool's help message contains brief examples that demonstrate usage. For example, csvop:

Help message for csvop with two examples

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.1.tar.gz (14.1 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.1-py3-none-any.whl (22.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: sacsv-1.6.1.tar.gz
  • Upload date:
  • Size: 14.1 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.1.tar.gz
Algorithm Hash digest
SHA256 5b48bee307895843d473f9b760bf07e3d93ac21e2b05dc46ca86396dd7f3467c
MD5 63511860131158266ff0a7cdad58f9bf
BLAKE2b-256 3ae2b8af5d3dc9739cde217b32705e7553fc1e46706252bc3143f448cefb3de7

See more details on using hashes here.

File details

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

File metadata

  • Download URL: sacsv-1.6.1-py3-none-any.whl
  • Upload date:
  • Size: 22.6 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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e77cfcfec3ac0e152e9d146f5744c9c851782c226f9be3e93bc00a5f6604a00e
MD5 a05c4b2b4014682fe81db9c9a5ba5e13
BLAKE2b-256 2002c776e55fbab89ea50d2b393aa1aea5bc0a9b6a9b56affb9a938850abf231

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