Сообщить об ошибке.

Класс Dialect модуля csv в Python

Параметры форматирования CSV файла

Синтаксис:

import csv

dialect = csv.Dialect
dialect.delimiter = ';'
dialect.other_param = 'val'
writer = csv.writer(csvfile, dialect=dialect)

Описание:

Класс Dialect модуля csv это контейнерный класс с атрибутами, которые используются для определения параметров для конкретного экземпляра csv.reader() или csv.writer().

Чтобы упростить задание формата входных и выходных записей, конкретные параметры форматирования сгруппированы в диалекты.

При создании объектов чтения csv.reader() или записи csv.writer() программист может указать строку или подкласс класса csv.Dialect в качестве параметра диалекта.

В дополнение к параметру диалекта или вместо него программист может также указать отдельные параметры форматирования, которые имеют те же имена, что и атрибуты, определенные ниже:

Атрибуты и методы класса csv.Dialect.

Dialect.delimiter:

Атрибут Dialect.delimiter - односимвольная строка, используемая для разделения полей. По умолчанию это ','.

>>> import csv
>>> csv.Dialect.delimiter = ';'
>>> csv.Dialect.delimiter
# ';'

Dialect.doublequote:

Атрибут Dialect.doublequote управляет тем, как экземпляры Dialect.quotechar, появляющиеся внутри поля, должны сами заключаться в кавычки. Когда True, то символ удваивается. Когда False, то Dialect.escapechar используется в качестве префикса к кавычке. По умолчанию установлено значение True.

На выходе, если quotechar имеет значение False и не задан escape-символ escapechar, возникает ошибка, если в поле найдена кавычка.

>>> import csv
>>> print(csv.Dialect.doublequote)
# True
>>> csv.Dialect.doublequote = False
>>> csv.Dialect.doublequote
# False

Dialect.escapechar:

Атрибут Dialect.escapechar односимвольная строка, используемая csv.writer() для экранирования разделителя Dialect.delimiter, если в Dialect.quoting установлено значение cvs.QUOTE_NONE и Dialect.quotechar, если в Dialect.doublequote указано значение False.

При чтении escape-символ Dialect.escapechar удаляет любое специальное значение из следующего символа. По умолчанию None, что отключает экранирование.

>>> import csv
>>> print(csv.Dialect.escapechar)
# None
>>> csv.Dialect.escapechar = '\\'
>>> csv.Dialect.escapechar
'\\'

Dialect.lineterminator:

Атрибут Dialect.lineterminator - строка, используемая для завершения строк, созданных csv.writer(). По умолчанию используется значение '\r\n'.

Примечание. csv.reader() жестко запрограммирован на распознавание либо '\r', либо '\n' как конца строки и игнорирует lineterminator. Это поведение может измениться в будущем.

>>> import csv
>>> print(csv.Dialect.lineterminator)
# None
>>> csv.Dialect.lineterminator = '\n'
>>> csv.Dialect.lineterminator
'\n'

Dialect.quotechar:

Атрибут Dialect.quotechar односимвольная строка, используемая для кавычек в полях, содержащих специальные символы, такие как разделитель Dialect.delimiter или кавычка Dialect.quotechar, или содержат символы новой строки. По умолчанию это пустая строка ''.

>>> import csv
>>> print(csv.Dialect.quotechar)
# None
>>> csv.Dialect.quotechar = ''
>>> csv.Dialect.quotechar
''

Dialect.quoting:

Атрибут Dialect.quoting определяет, когда кавычки должны генерироваться csv.writer() и распознаваться csv.reader().

Может принимать любую из констант csv.QUOTE_*, по умолчанию QUOTE_MINIMAL.

>>> import csv
>>> print(csv.Dialect.quoting)
# None
>>> csv.Dialect.quoting = csv.QUOTE_MINIMAL
>>> csv.Dialect.quoting
# 0

Dialect.skipinitialspace:

Атрибут Dialect.skipinitialspace имеет значение по умолчанию False. При значении True - пробел, следующий сразу за разделителем Dialect.delimiter игнорируется.

>>> import csv
>>> print(csv.Dialect.skipinitialspace)
# None
>>> csv.Dialect.skipinitialspace = True
>>> csv.Dialect.skipinitialspace
# True

Dialect.strict:

Атрибут Dialect.strict имеет значение по умолчанию False. При значении True, выдает исключение Error при неправильной разметке CSV.

>>> import csv
>>> print(csv.Dialect.strict)
# None
>>> csv.Dialect.strict = True
>>> csv.Dialect.strict
# True