| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- ================================================
- backports.csv: Backport of Python 3's csv module
- ================================================
- .. image:: https://img.shields.io/pypi/v/backports.csv.svg
- :target: https://pypi.python.org/pypi/backports.csv
- :alt: Latest Version
- .. image:: https://travis-ci.org/ryanhiebert/backports.csv.svg?branch=master
- :target: https://travis-ci.org/ryanhiebert/backports.csv
- .. image:: https://badges.gitter.im/ryanhiebert/backports.csv.svg
- :alt: Join the chat at https://gitter.im/ryanhiebert/backports.csv
- :target: https://gitter.im/ryanhiebert/backports.csv?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge
- The API of the csv module in Python 2 is drastically different from
- the csv module in Python 3. This is due, for the most part, to the
- difference between str in Python 2 and Python 3.
- The semantics of Python 3's version are more useful because they support
- unicode natively, while Python 2's csv does not.
- Installation
- ============
- .. code-block:: sh
- pip install backports.csv
- Usage
- =====
- First make sure you're starting your file off right:
- .. code-block:: python
- from backports import csv
- Then be careful with your files to handle the encoding.
- If you're working with a binary file-like object,
- ``io.TextIOWrapper`` can be very helpful.
- If you're dealing with a file, you can just use ``io.open``
- instead of Python 2's ``open`` builtin, and it works
- just like Python 3's builtin ``open``.
- .. code-block:: python
- from backports import csv
- import io
- def read_csv(filename):
- with io.open(filename, newline='', encoding='utf-8') as f:
- for row in csv.reader(f):
- yield row
- def write_csv(filename, rows):
- with io.open(filename, 'w', newline='', encoding='utf-8') as f:
- writer = csv.writer(f)
- for row in rows:
- writer.writerows(row)
- Note: It should always be safe to specify ``newline=''``,
- since the csv module does its own (universal) newline handling.
- License
- =======
- This is a port of the csv module in the Python 3 standard libary.
- Because of this, backports.csv follows the same license as Python,
- whatever that may be at any given point in time.
|