.. function:: reader(csvfile, dialect='excel', **fmtparams)
- Return a reader object which will iterate over lines in the given *csvfile*.
- *csvfile* can be any object which supports the :term:`iterator` protocol and returns a
- string each time its :meth:`!__next__` method is called --- :term:`file objects
- <file object>` and list objects are both suitable. If *csvfile* is a file object,
+ Return a :ref:`reader object <reader-objects>` that will process
+ lines from the given *csvfile*. A csvfile must be an iterable of
+ strings, each in the reader's defined csv format.
+ A csvfile is most commonly a file-like object or list.
+ If *csvfile* is a file object,
it should be opened with ``newline=''``. [1]_ An optional
*dialect* parameter can be given which is used to define a set of parameters
specific to a particular CSV dialect. It may be an instance of a subclass of
When ``True``, raise exception :exc:`Error` on bad CSV input.
The default is ``False``.
+.. _reader-objects:
+
Reader Objects
--------------