A simple library for CSV files
Python
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
incisive
.gitignore
LICENSE
MANIFEST.in
README.rst
TODO.rst
setup.py

README.rst

incisive

incisive is a tiny library for handling CSV in Python. It's a wrapper for the csv module.

Usage

  • You can read a csv file like this:

    >>> iris = read_csv("data/iris.csv")
    >>> iris.next()
    {'petal_length': 1.4,
     'petal_width': 0.2,
     'sepal_length': 5.1,
     'sepal_width': 3.5,
     'species': 'setosa'}
    

read_csv returns a generator. Note that incisive, by default, tries to guess the type of the columns.

  • Writing a CSV file can be done in two ways:
  1. with a list of dictionaries:

    >>> data = [{'name': 'Lancelot', 'actor': 'John Cleese', 'color': 'blue'},
               {'name': 'Galahad', 'actor': 'Michael Palin', 'color': 'yellow'}]
    
    >>> write_csv('bridge.csv', ('name', 'actor', 'color'), data=data)
    

(the keys are the field names of the CSV file.)

  1. or with just a list of rows:

    >>> rows = [('Lancelot', 'John Cleese', 'blue'),
            ('Galahad', 'Michael Palin', 'yellow')]
    
    >>> write_csv('bridge.csv', ('name', 'actor', 'color'), rows=rows)
    

Note that this second method requires that your field names correspond exactly to the elements of your rows.

Features

  • Simple API
  • Guess the types when it's possible
  • Accept functions to specify the types