все 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Сообщить о неточности