Python Glossary English

все Python 3Файлы и I/Oпонятие

csv.Dialect

csv — диалекты

Класс-описание формата CSV: разделитель, кавычки, конец строки, правила экранирования. Наследуйте его, чтобы описать свой формат одним именем.

Синтаксис

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

Атрибуты задаются на уровне класса, а экземпляр создавать не нужно: reader и writer принимают сам класс. Наследник Dialect должен задать все обязательные атрибуты — delimiter, quotechar, lineterminator, quoting; забытый lineterminator даёт TypeError при создании writer. Проще наследоваться от csv.excel и поменять только нужное.

Примеры

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

См. также

Частые ошибки

Открыть в полном глоссарииdocs.python.orgСообщить о неточности