Skip to main content
Join the official Python Developers Survey 2018 and win valuable prizes: Start the survey!

Python 2/3 unicode CSV compatibility layer

Project description

Latest PyPI Version License Supported Python Versions Format Readthedocs

Travis Codecov

csv23 provides the unicode-based API of the Python 3 csv module for Python 2 and 3. Code that should run under both versions of Python can use it to hide the bytes vs. text difference between 2 and 3 and stick to the newer unicode-based interface.

csv23 works around for the following bugs in the stdlib csv module:

bpo-12178
broken round-trip with escapechar if your data contains a literal escape character
bpo-31590
broken round-trip with escapechar and embedded newlines under Python 2 (fixed in Python 3.4 but not backported): produce a warning

The package also provides some convenience functionality such as the open_csv() context manager for opening a CSV file in the right mode and returning a csv.reader or csv.writer:

>>> import csv23

>>> with csv23.open_csv('spam.csv') as reader:  # doctest: +SKIP
...     for row in reader:
...         print(', '.join(row))
Spam!, Spam!, Spam!'
Spam!, Lovely Spam!, Lovely Spam!'

It uses utf-8 as default encoding everywhere.

Installation

This package runs under Python 2.7, and 3.4+, use pip to install:

$ pip install csv23

License

This package is distributed under the MIT license.

Project details


Download files

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

Filename, size & hash SHA256 hash help File type Python version Upload date
csv23-0.1.4-py2.py3-none-any.whl (14.2 kB) Copy SHA256 hash SHA256 Wheel py2.py3 May 27, 2018
csv23-0.1.4.zip (33.3 kB) Copy SHA256 hash SHA256 Source None May 27, 2018

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN SignalFx SignalFx Supporter DigiCert DigiCert EV certificate StatusPage StatusPage Status page