Skip to main content

Generate a diff between two CSV files.

Project description

https://badge.fury.io/py/csvdiff.png https://travis-ci.org/larsyencken/csvdiff.png?branch=master https://pypip.in/d/csvdiff/badge.png

Overview

Generate a diff between two CSV files on the command-line.

Installing

pip install csvdiff

Examples

For example, suppose we have a.csv:

id,name,amount
1,bob,20
2,eva,63
3,sarah,7
4,jeff,19
6,fred,10

and a matching file after some changes, b.csv:

id,name,amount
1,bob,23
3,sarah,7
4,jeff,19
5,mira,81
6,fred,13

Now we can ask for a summary of differences:

$ csvdiff --style=summary id a.csv b.csv
1 rows removed (20.0%)
1 rows added (20.0%)
2 rows changed (40.0%)

Or look at the full diff pretty printed, to make it more readable:

$ csvdiff --style=pretty id a.csv b.csv
{
  "added": [
    {
      "amount": "81",
      "id": "5",
      "name": "mira"
    }
  ],
  "changed": [
    {
      "fields": {
        "amount": {
          "from": "20",
          "to": "23"
        }
      },
      "key": [
        "1"
      ]
    },
    {
      "fields": {
        "amount": {
          "from": "10",
          "to": "13"
        }
      },
      "key": [
        "6"
      ]
    }
  ],
  "removed": [
    {
      "amount": "63",
      "id": "2",
      "name": "eva"
    }
  ]
}

It gives us the full listing of added and removed rows, as well as a listing of what fields changed for that shared a key.

For more usage options, run csvdiff --help.

License

BSD license

History

0.2.0 (2014-12-30)

  • Uses click for the command-line interface.
  • Drop YAML support in favour of pretty-printed JSON.
  • Uses –style option to change output style.
  • Provides a full man page.

0.1.0 (2014-03-15)

  • First release on PyPI.
  • Generates a JSON or YAML difference between two CSV files
  • Specify multiple key components with -k
  • Can provide a difference summary
  • Assumes files use standard comma-separation, double-quoting and a header row with field names

Project details


Download files

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

Files for csvdiff, version 0.2.0
Filename, size File type Python version Upload date Hashes
Filename, size csvdiff-0.2.0-py2.py3-none-any.whl (6.2 kB) File type Wheel Python version 3.4 Upload date Hashes View
Filename, size csvdiff-0.2.0.tar.gz (6.8 kB) File type Source Python version None Upload date Hashes View

Supported by

AWS AWS Cloud computing Datadog Datadog Monitoring DigiCert DigiCert EV certificate Facebook / Instagram Facebook / Instagram PSF Sponsor Fastly Fastly CDN Google Google Object Storage and Download Analytics Pingdom Pingdom Monitoring Salesforce Salesforce PSF Sponsor Sentry Sentry Error logging StatusPage StatusPage Status page