Python Glossary Русский

all Python 3Files & I/Oterm

csv.Dialect

csv — dialects

A class describing a CSV format: delimiter, quote character, line terminator and escaping rules. Subclass it to name your own format once.

Syntax

class MyDialect(csv.Dialect):
    delimiter = ';'; quotechar = '"'; lineterminator = '\n'; quoting = csv.QUOTE_MINIMAL

Attributes are set at class level and you do not need an instance: reader and writer accept the class itself. A direct Dialect subclass must set every required attribute — delimiter, quotechar, lineterminator, quoting; a missing lineterminator raises TypeError when the writer is created. It is simpler to subclass csv.excel and change only what you need.

Examples

import csv
import io
class Semi(csv.excel):
    delimiter = ';'
    lineterminator = '\n'
out = io.StringIO()
csv.writer(out, Semi).writerow(['a', 'b;c'])
print(repr(out.getvalue()))  # → 'a;"b;c"\n'
# Python 3.14+
import csv
import io
class Bad(csv.Dialect):
    delimiter = ';'
try:
    csv.writer(io.StringIO(), Bad)
except TypeError as e:
    print(e)  # → "lineterminator" must be a string, not NoneType

See also

Common errors

Open in the full glossarydocs.python.orgReport an inaccuracy