Functions to do obvious things with CSVs
Project description
# EZCSV
Some utility functions to do the obvious things you want to do with CSV files.
`csv` is easy, this is EZ.
Install it: `pip install ezcsv`
Definitely works with Python 3+.
It's on it's way towards compatability with Python 2.6+.
It's hard to say anything about it difinitively because there are no tests.
Please see "Contributing" below.
## Reference
#### `read_dicts(file_path)`
Returns the data at `file_path` as a list of dicts.
- **`file_path`** `string | Path`
#### `read_lists(file_path)`
Returns the data at `file_path` as a list of lists. Ignores blank lines.
- **`file_path`** `string | Path`
Example Usage:
```
>>> from easycsv import csv_as_list
>>> filepath = 'C:\\path\\to\\file.csv'
>>> print(filepath)
C:\path\to\file.csv
>>> l = csv_as_list(filepath)
>>> print(l[0])
First,Line,Of,File,Prints,Here
```
#### `write_dicts(data, csv_path, mkdir=False, silent_fail=False, fieldnames=None, encoding='utf-8', **kwargs)`
Writes the input data to a CSV file
Always produces a Unix-style CSV file, regardless of whether on
Windows or not.
- **`data`** `list[dict]`
One dict per line. The first dict is expected to contain all of the
keys that will form the header line, unless `fieldnames` is provided.
- **`csv_path`** `string | Path`
Should have a .csv extension. `mkdir` will malfunction if it doesn't.
- **`mkdir`** `bool`
If true, creates the directory tree leading up to `csv_path`, ignoring
if directories already exist. Default: `False`
- **`silent_fail`**: `bool`
If `true`, causes the method to do nothing if `data` happens
to be empty. Default: `False`
- **`fieldnames`**: `list[str]`
If set, provides the list of field names to be passed to `csv.DictWriter`.
These are written as the header, regardless of what keys are present in
the first dict in `data`. Default: `None`
- **`encoding`**: `str`
The encoding to write with. Default: 'utf-8'
- **`kwargs`**: `dict`
Passed on to `csv.DictWriter`. Cannot include `fieldnames`.
#### `write_lists(data, csv_path, mkdir=False)`
Writes the input data to a CSV file
Always produces a Unix-style CSV file, regardless of whether on
Windows or not.
- **`data`** `list[list]`
- **`csv_path`** `string | Path`
Should have a .csv extension. `mkdir` will malfunction if it doesn't.
- **`mkdir`** `bool`
If true, creates the directory tree leading up to `csv_path`, ignoring
if directories already exist.
## Contributing
This could really use some tests!
Feel free to fork and open a pull request. Please, one pull request per
functional change.
Some utility functions to do the obvious things you want to do with CSV files.
`csv` is easy, this is EZ.
Install it: `pip install ezcsv`
Definitely works with Python 3+.
It's on it's way towards compatability with Python 2.6+.
It's hard to say anything about it difinitively because there are no tests.
Please see "Contributing" below.
## Reference
#### `read_dicts(file_path)`
Returns the data at `file_path` as a list of dicts.
- **`file_path`** `string | Path`
#### `read_lists(file_path)`
Returns the data at `file_path` as a list of lists. Ignores blank lines.
- **`file_path`** `string | Path`
Example Usage:
```
>>> from easycsv import csv_as_list
>>> filepath = 'C:\\path\\to\\file.csv'
>>> print(filepath)
C:\path\to\file.csv
>>> l = csv_as_list(filepath)
>>> print(l[0])
First,Line,Of,File,Prints,Here
```
#### `write_dicts(data, csv_path, mkdir=False, silent_fail=False, fieldnames=None, encoding='utf-8', **kwargs)`
Writes the input data to a CSV file
Always produces a Unix-style CSV file, regardless of whether on
Windows or not.
- **`data`** `list[dict]`
One dict per line. The first dict is expected to contain all of the
keys that will form the header line, unless `fieldnames` is provided.
- **`csv_path`** `string | Path`
Should have a .csv extension. `mkdir` will malfunction if it doesn't.
- **`mkdir`** `bool`
If true, creates the directory tree leading up to `csv_path`, ignoring
if directories already exist. Default: `False`
- **`silent_fail`**: `bool`
If `true`, causes the method to do nothing if `data` happens
to be empty. Default: `False`
- **`fieldnames`**: `list[str]`
If set, provides the list of field names to be passed to `csv.DictWriter`.
These are written as the header, regardless of what keys are present in
the first dict in `data`. Default: `None`
- **`encoding`**: `str`
The encoding to write with. Default: 'utf-8'
- **`kwargs`**: `dict`
Passed on to `csv.DictWriter`. Cannot include `fieldnames`.
#### `write_lists(data, csv_path, mkdir=False)`
Writes the input data to a CSV file
Always produces a Unix-style CSV file, regardless of whether on
Windows or not.
- **`data`** `list[list]`
- **`csv_path`** `string | Path`
Should have a .csv extension. `mkdir` will malfunction if it doesn't.
- **`mkdir`** `bool`
If true, creates the directory tree leading up to `csv_path`, ignoring
if directories already exist.
## Contributing
This could really use some tests!
Feel free to fork and open a pull request. Please, one pull request per
functional change.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
ezcsv-0.3.tar.gz
(3.1 kB
view hashes)
Built Distribution
ezcsv-0.3-py3-none-any.whl
(5.4 kB
view hashes)