import csv writer = csv.writer(csvfile, dialect='excel', **fmtparams)
csvfile
- файловый объект,dialect
- строка с встроенным диалектом из списка csv.list_dialects()
или объект Dialect
,fmtparams
- параметры диалекта и форматирования. В качестве ключевых аргументов используйте имена атрибутов объекта Dialect
:delimiter=','
- символ, используемый для разделения полей.quotechar=''
- символ, используемый для кавычек в полях, содержащих специальные символы, такие как разделитель.escapechar='\\'
- символ, используемый для экранирования разделителя.quoting=csv.QUOTE_MINIMAL
- определяет, когда должны генерироваться кавычки для полей.strict=False
- если True
, то выдает исключение при неправильной разметке CSV.Функция writer()
модуля csv
возвращает объект записи, отвечающий за преобразование пользовательских данных в строки с разделителями для данного файлового объекта.
Csvfile может быть любым объектом с поддержкой метода file.write()
. Если csvfile
является файловым объектом, его следует открыть с помощью параметра newline=''
встроенной функции open()
.
Можно указать необязательный параметр диалекта dialect
, который используется для определения набора параметров, специфичных для конкретного диалекта CSV. Это может быть экземпляр подкласса csv.Dialect
или одна из строк, возвращаемых функцией csv.list_dialects()
.
Другие необязательные ключевые аргументы fmtparams
могут быть заданы для переопределения отдельных параметров форматирования в текущем диалекте. Для получения полной информации о параметрах диалекта и форматирования смотрите раздел "Диалекты и параметры форматирования модуля csv
".
Чтобы максимально упростить взаимодействие с модулями, которые реализуют API БД, значение None
записывается в виде пустой строки. Хотя это и не обратимое преобразование, оно облегчает вывод значений NULL
из SQL в файлы CSV без предварительной обработки данных, возвращаемых вызовом cursor.fetch*
. Все другие не строковые данные перед записью преобразуются в строки, функцией str()
.
import csv # пишем with open('eggs.csv', 'w', newline='') as csvfile: spamwriter = csv.writer(csvfile, delimiter=' ', quotechar='|', quoting=csv.QUOTE_MINIMAL) spamwriter.writerow(['Spam'] * 5 + ['Baked Beans']) spamwriter.writerow(['Spam', 'Lovely Spam', 'Wonderful Spam']) # читаем что получилось with open('eggs.csv', newline='') as csvfile: spamreader = csv.reader(csvfile, delimiter=' ', quotechar='|') for row in spamreader: print(', '.join(row)) # Spam, Spam, Spam, Spam, Spam, Baked Beans # Spam, Lovely Spam, Wonderful Spam