To make it easier to specify the format of input and output records,
specific formatting parameters are grouped together into dialects. A
dialect is a subclass of the Dialect class having a set of specific
methods and a single validate() method. When creating reader
or writer objects, the programmer can specify a string or a subclass
of the Dialect class as the dialect parameter. In addition to, or
instead of, the dialect parameter, the programmer can also specify
individual formatting parameters, which have the same names as the
attributes defined below for the Dialect class.
Dialects support the following attributes:
delimiter
A one-character string used to separate fields. It defaults to ','.
doublequote
Controls how instances of quotechar appearing inside a field should
be themselves be quoted. When True, the character is doubled.
When False, the escapechar is used as a prefix to the
quotechar. It defaults to True.
On output, if doublequote is False and no
escapechar is set, Error is raised if a quotechar
is found in a field.
escapechar
A one-character string used by the writer to escape the delimiter if
quoting is set to QUOTE_NONE and the quotechar
if doublequote is False. On reading, the escapechar
removes any special meaning from the following character. It defaults
to None, which disables escaping.
lineterminator
The string used to terminate lines produced by the writer.
It defaults to '\r\n'.
Note:
The reader is hard-coded to recognise either '\r'
or '\n' as end-of-line, and ignores lineterminator. This
behavior may change in the future.
quotechar
A one-character string used to quote fields containing special characters,
such as the delimiter or quotechar, or which contain new-line
characters. It defaults to '"'.
quoting
Controls when quotes should be generated by the writer and recognised
by the reader. It can take on any of the QUOTE_* constants
(see section 9.1.1) and defaults to QUOTE_MINIMAL.
skipinitialspace
When True, whitespace immediately following the delimiter
is ignored. The default is False.